grep 工具的工作方式是对文件的每一行搜索给定字符串的首次出现. 如果找到了这个字符串,就打印该行的内容; 否则就不对该行进行打印.
#grep welcoming demo.log
从demo.log中查找包含welcoming 的行
grep中可以使用通配符和元字符,把他们放到引号中,这样shell就不会将他们解释成命令了.
查找所有包含数字的行,请使用下面的命令:
#grep "[0-9]" demo.log
如果忽略大小写
第一种方式:
# grep "[T, t]est demo.log
第二种方式:
# grep -i test demo.log
选择不匹配搜索条件的行
# grep -v test demo.log
要用好grep这个工具,其实就是要写好正则表达式,所以这里不对grep的所有功能进行实例讲解,只列几个例子,讲解一个正则表达式的写法。
$ ls -l | grep '^a'
通过管道过滤ls -l输出的内容,只显示以a开头的行。
$ grep 'test' d*
显示所有以d开头的文件中包含test的行。
$ grep 'test' aa bb cc
显示在aa,bb,cc文件中匹配test的行。
$ grep '[a-z]/{5/}' aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
$ grep 'w/(es/)t.*/1' aa
如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(/1),找到就显示该行。如果用egrep或grep -E,就不用"/"号进行转义,直接写成'w(es)t.*/1'就可以了。