首页
学习
活动
专区
圈层
工具
发布

ps _安全_
EN

Stack Overflow用户
提问于 2015-06-19 06:42:36
回答 1查看 243关注 0票数 0
代码语言:javascript
复制
# ps  | grep safe
14592 root      136m S    /tmp/data/safe/safe
16210 root      1664 S    grep safe

# ps  | grep safe\$
14592 root      258m S    /tmp/data/safe/safe

那么\$是什么意思呢?它是正则表达式吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-19 08:37:45

是的,这是一种准则。$是一个正则字符,意思是“行尾”。因此,通过说grep safe\$,您就是在grep平所有名称以safe结尾的行,并避免grep本身成为输出的一部分。

这里的问题是,如果您运行ps命令并将其输出为grep,则将列出grep本身:

代码语言:javascript
复制
$ ps -ef | grep bash
me       30683  9114  0 10:25 pts/5    00:00:00 bash
me       30722  8859  0 10:33 pts/3    00:00:00 grep bash

因此,通过表示grep safe\$或其等效的grep "safe$",您将在匹配中添加一个正则表达式,这将使grep本身不显示。

代码语言:javascript
复制
$ ps -ef | grep "bash$"
me       30683  9114  0 10:25 pts/5    00:00:00 bash

有趣的是,如果在-F中使用grep选项,它将匹配确切的字符串,因此您将得到的唯一输出是grep本身:

代码语言:javascript
复制
$ ps -ef | grep -F "bash$"
me       30722  8859  0 10:33 pts/3    00:00:00 grep -F bash$

这样做的典型诀窍是grep -v grep,但您可以在More elegant "ps aux | grep -v grep"中找到其他的技巧。我喜欢那个写着ps -ef | grep "[b]ash"的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30931591

复制
相关文章

相似问题

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