十三、shell三剑客(1)grep
1.grep的分类
grep 默认不会识别正则匹配
egrep 自带正则匹配
fgrep 什么符号都不认
语法
grep 找什么 在哪找1 在哪找2 在哪找3
2.返回值
0是找到了 表示成功
1是没有 表示在所提供的文件无法找到匹配的pattern
2找到但地方不对
3.参数
grep -q 静默 不显示,可以用来判断
grep -v 取反 常用
我们这里用grep搜索ssh的相关进程,会把自己也算在里面,所以可以再次取反不看grep
grep -R 可以查看目录下面的文件
grep -o 只找这个关键字就可以
文中有许多123,但是如果你只想看123,而不是内容
grep -B2 前两行
grep -A2 后两行
grep -C2 上下两行
grep -n 带行号
grep -l 只看文件名
示例:
egrep 'NW' datafile.txt 在datafile.txt里找NW
grep 'NW' d*.txt 在开头d的.txt文件里找NW
egrep '^n' datafile.txt 在datafile.txt里找行首为n的
egrep '4$' datafile.txt 在datafile.txt里找以4为行尾的
egrep TB Savage datafile.txt 在Savage 和 datafile.txt里找带有TB的
egrep '5\..' datafile.txt 在datafile.txt里找5.后接任意一个字符
egrep '\.5' datafile.txt 在datafile.txt里找.5
egrep '^[we]' datafile.txt 在datafile.txt里找行首是w或者e的
egrep '[^0-9]' datafile.txt 在datafile.txt里找非数字的
egrep '[A-Z][A-Z] [A-Z]' datafile.txt 在datafile.txt里找大写大写空格大写
egrep 'ss*' datafile.txt 在datafile.txt里找s接0-n个s
egrep '[a-z]{9}' datafile.txt 在datafile.txt里找9个连续的小写字母
egrep '\<north' datafile.txt 在datafile.txt里找以north为词首的词
egrep '\<north\>' datafile.txt 在datafile.txt里找north的词
egrep '\<[a-r].*n\>' datafile.txt 在datafile.txt里找a-r中任意一个为词首,以n为词尾的词