正则匹配:
grep -E "[a-z]+"
只输出匹配到的文本:
echo this is a line. | grep -o -E "[a-z]+."
统计匹配到的行数:
grep -c
匹配之外的行:
grep -v
多级目录中递归搜索:
grep "text" . -R -n
忽略大小写:
grep -i
匹配多个样式:
grep -e "this" -e "line"
grep中包括货排除文件:
grep "main()" . -r --include *.{c,cpp}
grep "main()" . -r --exclude "README"
删除grep出的文件:(xargs -0表示以0值结尾的,防止有些文件名中有空格,被当作两个文件名)
grep "test" file* -lz |xargs -0 rm
静默输出:
grep -q
打印匹配文本之前货之后的行:
seq 10 | grep 5 -A 3 //之前
seq 10 | grep 5 -B 3 //之后
seq 10 | grep 5 -C 3 //前后
摘自:《Linux Shell 脚步攻略》