您的位置:首页 > 运维架构 > Shell

shell及正则表达式

2016-12-11 16:57 218 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell 正则 表达式