1.grep
grep指令用于检索与输入文件的已有模式列表匹配的行,之后通过标准输出复制和显示检索行。
在不超出内存上限的范围内,grep的检索范围对输入行没有限制,而且可以匹配1行中所有字符。
-b 检索是显示行添加块编号
[qwe@localhost aaa]$ grep -b love /home/qwe/aaa/rregular
0:I love you I LOVE YOU
-c 不显示匹配行,显示匹配行数
[qwe@localhost aaa]$ grep -c love /home/qwe/aaa/rregular
1
-h 不显示文件名
-i 检索时忽略模式中使用的字符串大小写字母
[qwe@localhost aaa]$ grep -i Love /home/qwe/aaa/rregular
I love you I LOVE YOU
-l 显示的文件名包括至少一个模式匹配行。显示时每个行用newline隔开。
[qwe@localhost aaa]$ grep -l love /home/qwe/aaa/rregular /home/qwe/aaa/vimtext
/home/qwe/aaa/rregular
-n 显示匹配行时与文件号一起显示。
[qwe@localhost aaa]$ grep -n love /home/qwe/aaa/rregular
1:I love you I LOVE YOU
-s 正常执行,不显示错误信息
[qwe@localhost aaa]$ grep -n love /home/qwe/aaa/rregular1
grep: /home/qwe/aaa/rregular1: No such file or directory
[qwe@localhost aaa]$ grep -s love /home/qwe/aaa/rregular1
[qwe@localhost aaa]$
-v 只显示与模式不匹配的行
[qwe@localhost aaa]$ grep -v love /home/qwe/aaa/rregular
Iooooooooove you
i lov you too
-w 用1个\<和\>内的词检索表达式
2. egrep
egrep是grep的扩展,可以使用其他正则表达式的元字符集。
grep中添加的元字符集
^ 行首
$ 行尾
. 匹配1个字符
* 匹配0或0个以上的字符
[] 与[]内至少1个字符匹配的字符
[^] 不匹配[]内的任何字符
+ 匹配+字符之前的多个字符 ‘[a-z]+linux’ 检索inux前至少1个小写字母的行
? 之前无字符或匹配1个字符 ‘lo?ve’ 显示“?”之前有字符o或者含有无字符字符串的行(lve\love)
a|b 匹配a或b的字符(or)
() 字符组 ‘(ab)+’ 显示ab重复一次或者多次的行