首页 > 代码库 > shell及正则表达式

shell及正则表达式

shell 表达式


-d file  是否存在而且为目录

-f file    文件是否存在,且为普通文件

-w file    文件是否存在且可写

-s file    文件是否存在且非空

-n string    字符串长度非0

string1=string2    字符串相等

-eq     等于

-gt      大于

-lt       小于

-e  file       文件是否存在

-r   file       文件是否存在且可读

-x   file        文件是否存在且可执行

-h   file        文件是否为链接文件

-z   string     字符串长度为0

string1!=string2   字符串不等

-ge  大于或等于

-le    小于或等于

-ne    不等于


单引号

echo ‘$HOME‘

$HOME


echo "$HOME"

/root


echo "\$HOME"

转义


echo "abc `date +%D`"

abc 12/07/16


echo "abc $(date +%D)"

abc 12/07/16


正则表达式

.    匹配任意单个字符

*    匹配前一个字符出现0次或多次

.*     匹配任意多个任意字符串

[]    匹配集合中任意单个字符

[x-y]    匹配连续的字串范围

^    匹配字串开头

$    匹配字串结尾

[^]    匹配否定,对括号中的集合取反

\       匹配转义后的字串

\{n,m\}    匹配前一个字符重复n到m次

\{n,\}    匹配前一个字符至少n次

\{n\}    匹配前一个字符串重复n次

\(\)       将\(与\)之间的内容存储在"保留空间",最大存储9个

\n        同过\1至\9调用保留空间中的内容  

{n,m}   等同于\{n,m\}

+            匹配前一个字符出现一次或多次

?            匹配前一个字符出现一次或0次

|            逻辑或,匹配前或后字串

()            匹配正则集合



eg:
grep :..0: passwd

grep 00* passwd 

grep o[oa]t passwd

grep [0-9] passwd

grep ^root passwd 

grep bash$ passwd

grep sbin/[^t] passwd 

grep ‘0\{1,2\}‘ passwd

grep "\(root\)\(:\).*\2\1" passwd 

grep ^$ passwd 

grep -v ^$ passwd




本文出自 “linux学习笔记” 博客,请务必保留此出处http://rockycai.blog.51cto.com/8871643/1881674

shell及正则表达式