Linux shell 示例(二)

一、正则表达式
a、基本正则表达式

元字符 描述
. 匹配任意单个字符
* 匹配其前面的字符任意次
.* 任意长度的任意字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[:lower:] 小写字母
[:upper:] 大写字母
[:alpha:] 所有字母
[:digit:] 数字
[:alnum:] 所有数字和字母
[:punct:] 标点符号
[:space:] 空白字符
\? 匹配其前面的字符1次或0次
{m,n} 匹配其前面的字符至少m次,至多n次
^ 铆定行首,此字符后面的任意内容必须出现在行首
$ 铆定行尾,此字符前面的任意内容必须出现在行尾
^$ 表示空白行
\<或\b 铆定词首,其后面的任意字符必须作为单词的首部出现
\>或\b 铆定词尾,其前面的任意字符必须作为单词的尾部出现
() 分组
(ab)* ab作为一个整体,可以出现任意次
(ab).*\1 引用第一个左括号以及与之对应的右括号所包括的所有内容
(ab).*\2 引用第二个左括号以及与之对应的右括号所包括的所有内容

b、扩展整个表达式

. 匹配任意单个字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
* 匹配其前字符任意次
? 匹配其前字符0次或1次
+ 匹配其前字符至少1次,类似于基本正则表达式{1,}
{m,n} 匹配其前面的字符至少m次,至多n次
^ 行首
$ 行尾
\<或\b 词首
\>或\b 词尾

c、实例
cp一份/etc/passwd文件到/tmp

#查找特定的关键字
grep -n "ntp" /tmp/passwd 
#对查找结果进行取反
grep -vn "ntp" /tmp/passwd 
#利用[]查找集合字符
 grep -n "p[ou]" /tmp/passwd 
#利用^取反
 grep -n "p[^o]" /tmp/passwd 

猜你喜欢

转载自blog.51cto.com/woonli/2147250