ps | 之间的差异grep 安全和 ps | grep 安全\$
Difference between ps | grep safe and ps | grep safe\$
# 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
那么$
是什么意思呢?是正则表达式吗?
是的,它是一个正则表达式。 $
是一个正则表达式字符,表示 "end of line"。因此,通过说 grep safe$
,您 grep
ping 所有名称以 safe
结尾的行,并避免 grep
本身成为输出的一部分。
这里的事情是,如果你 运行 ps
命令和 grep
它的输出, grep
本身将被列出:
$ 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
本身不显示。
$ ps -ef | grep "bash$"
me 30683 9114 0 10:25 pts/5 00:00:00 bash
有趣的是,如果您在 grep
中使用 -F
选项,它将匹配精确的字符串,因此您将获得的唯一输出是 grep
本身:
$ 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"
.
的那个
# 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
那么$
是什么意思呢?是正则表达式吗?
是的,它是一个正则表达式。 $
是一个正则表达式字符,表示 "end of line"。因此,通过说 grep safe$
,您 grep
ping 所有名称以 safe
结尾的行,并避免 grep
本身成为输出的一部分。
这里的事情是,如果你 运行 ps
命令和 grep
它的输出, grep
本身将被列出:
$ 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
本身不显示。
$ ps -ef | grep "bash$"
me 30683 9114 0 10:25 pts/5 00:00:00 bash
有趣的是,如果您在 grep
中使用 -F
选项,它将匹配精确的字符串,因此您将获得的唯一输出是 grep
本身:
$ 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"
.