在文件中搜索模式
grep [options] pattern [file-list]
参数
pattern为正则表达式,file-list为grep要搜索的普通文本文件的路径名列表
选项
-c 只显示每个文件中包含匹配模式的行数
-v 显示不包含匹配模式的行
-i 忽略大小写
-a 在二进制文件中,以文本文件的方式搜索数据
-o 仅显示出匹配regexp的内容(用户统计出现在文件中的次数)
-n 匹配的内容在其行首显示行号
-E 扩展的grep,即egrep
-color=auto 以特定颜色高亮显示匹配关键字
-A after的意思, 显示匹配字符串及其后n行的数据
-B before, 显示匹配字符串及其前n行的数据
-C context 显示匹配字符串及其前后各num行
-w 接单词搜索,相当于\b。
示例
原文件
$ cat testa
aaabb
bbbcc
ff-ff
cccdd
dddaa
$ cat testb
aaaaa
bbbbb
ccccc
ddddd
$ cat testc
AAAAA
BBBBB
CCCCC
grep
$ grep bb testa
aaabb
bbbcc
在testa中搜索包含字符串bb的行
grep -v
$ grep -v bb testa
ff-ff
cccdd
dddaa
在testa中搜索不包含匹配字符串的行
grep -n
$ grep -n bb testa
:aaabb
:bbbcc
显示匹配行的行号
grep *
$ grep bb *
testa:aaabb
testa:bbbcc
testb:bbbbb
搜索多个文件中的匹配项
grep -i
$ grep -i bb *
testa:aaabb
testa:bbbcc
testb:bbbbb
testc:BBBBB
$ grep -i BB *
testa:aaabb
testa:bbbcc
testb:bbbbb
testc:BBBBB
不区分大小写匹配
grep -c
$ grep -c bb *
testa:
testb:
testc:
只显示每个文件中匹配的行数