grep几个小技巧

2013-06-08

grep参数很多,有时候用到一两个参数会解决大问题。

1、-E 符合两个条件
cat a.txt| grep -E 'bb|//'
egrep "^(mysql|net)" *.txt

2、-v 排除
tail -f access.log |grep -v google

3、-A2,-B2,-C2
-A NUM, --after-context=NUM
-B NUM, --before-context=NUM
-C NUM, --context=NUM

查看服务器内存分布
dmidecode |grep -A20 "Memory Device$"|sed -n -e'/Locator/p' -e '/Size/p'|grep -v "Bank Locator"
查看主板信息
dmidecode|grep -A16 "System Information$" |sed -n -e '/Product/p' -e '/Serial/p'

4、grep+sed获取行号
grep -B1 wf a.txt |awk '{if($1!~/wf/) print $1}'|xargs sed -i 'd'
grep -B1 wf a.txt |awk '{if( $1== "wf" ) print $1}'|xargs sed -i 'd'

expr `grep -n keyword a.txt |awk -F: '{print $1}'` - 1

sed -n '/wf/=' a.txt
grep -n wf a.txt|cut -d: -f1

expr `sed -n '/wf/=' a.txt` - 1

5、常用的grep选项有:
-c 只输出匹配行的计数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 显示不包含匹配文本的所有行。

分类:Linux | 标签: |

相关日志

评论被关闭!