首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UNIX命令(grep -v grep)

UNIX命令(grep -v grep)
EN

Stack Overflow用户
提问于 2015-04-05 04:33:04
回答 1查看 8.3K关注 0票数 4

我正在经历一些我无法理解的事情,

grep -v grep

这意味着什么?我知道-v开关将选择不匹配的所有行。但是为什么第二个grep

这是完整的命令:

代码语言:javascript
复制
ps -ef | grep rsync -avz \
| grep oradata${DAY}_[0-1][0-9] \
| grep -v grep \
| awk '{print $2}' | wc -l
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-05 04:43:34

grepps -ef一起使用时,也会输出用于过滤ps -ef输出的grep

grep -v grep意味着在命令输出中不包含用于筛选的grep

您还可以通过使用grep模式来避免结果中的regex。例如,在下面的示例中,您不需要grep -v grep来避免输出中的grep

代码语言:javascript
复制
ps -ef | grep [r]sync

下面的另一个示例显示了不同的命令及其输出,注意第一个示例中grep也在输出中,而在最后两个输出中没有打印grep

代码语言:javascript
复制
$ ps -ef | grep ipython
  501 18055 18031   0 12:44AM ttys000    0:00.00 /bin/bash /Users/amit/anaconda/bin/python.app /Users/amit/anaconda/bin/ipython notebook --profile=ocean
  501 18056 18055   0 12:44AM ttys000    0:00.85 /Users/amit/anaconda/python.app/Contents/MacOS/python /Users/amit/anaconda/bin/ipython notebook --profile=ocean
  501 18067 18031   0 12:44AM ttys000    0:00.00 grep ipython

$ ps -ef | grep ipython | grep -v grep
  501 18055 18031   0 12:44AM ttys000    0:00.00 /bin/bash /Users/amit/anaconda/bin/python.app /Users/amit/anaconda/bin/ipython notebook --profile=ocean
  501 18056 18055   0 12:44AM ttys000    0:00.85 /Users/amit/anaconda/python.app/Contents/MacOS/python /Users/amit/anaconda/bin/ipython notebook --profile=ocean

$ ps -ef | grep [i]python
  501 18055 18031   0 12:44AM ttys000    0:00.00 /bin/bash /Users/amit/anaconda/bin/python.app /Users/amit/anaconda/bin/ipython notebook --profile=ocean
  501 18056 18055   0 12:44AM ttys000    0:00.85 /Users/amit/anaconda/python.app/Contents/MacOS/python /Users/amit/anaconda/bin/ipython notebook --profile=ocean
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29454101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档