Linux命令:"grep -v grep"的作用 & 使用场景

很多时候,可以看到命令

ps -ef|grep gogs | grep -v grep | wc -l

其中的grep -v grep 是干啥的呢 ?

很简单 ,为了去除包含grep的进程行 ,避免影响最终数据的正确性 。

比如 ,

[isTester@iZ94b31ttqsZ]~# ps -ef|grep gogs

isTester.com 1883 1844 0 13:55 pts/0 00:00:00 grep gogs

git 6583 1 0 2018 ? 01:25:46 ./gogs web

加上grep -v grep ,就只剩下1行记录 。

[isTester@iZ94b31ttqsZ]~# ps -ef|grep gogs | grep -v grep

git 6583 1 0 2018 ? 01:25:46 ./gogs web

常用选项:

  -E :开启扩展(Extend)的正则表达式。

  -me :忽略大小写(ignore case)。

  -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。

  -n :显示行号

  -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker

  -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。

  -o :只显示被模式匹配到的字符串。

  --color :将匹配到的内容以颜色高亮显示。

  -A n:显示匹配到的字符串所在的行及其后n行,after

  -B n:显示匹配到的字符串所在的行及其前n行,before

  -C n:显示匹配到的字符串所在的行及其前后各n行,context

原文链接:https://blog.csdn.net/dieyong/article/details/93008252