读书人

【求解释】ps ag | egrep quot;正则amp;#x27;

发布时间: 2013-04-21 21:18:07 作者: rapoo

【求解释】ps ag | egrep "正则',正则管道的问题
各位兄弟, 有个问题,帮忙解释一下


$ ps ag | egrep "watchwho$"
19603 pts/1 S+ 0:00 /bin/bash /home/me/bin/watchwho
19605 pts/1 S+ 0:00 /bin/bash /home/gavin/bin/watchwho
$ ps ag | egrep "watchwho"
19603 pts/1 S+ 0:00 /bin/bash /home/me/bin/watchwho
19605 pts/1 S+ 0:00 /bin/bash /home/me/bin/watchwho
20569 pts/2 S+ 0:00 egrep --color=auto watchwho

为什么用egrep 正则 "watchwho$" 匹配不显示下面这行呢?
20569 pts/2 S+ 0:00 egrep --color=auto watchwho

而下面这样却可以? 我猜测是管道| 命令的问题,兄弟们,你们怎么看?

$ ps ag | egrep "watchwho" > temp
$ cat temp | egrep "watchwho$"
19603 pts/1 S+ 0:00 /bin/bash /home/me/bin/watchwho
19605 pts/1 S+ 0:00 /bin/bash /home/me/bin/watchwho
20827 pts/2 S+ 0:00 egrep --color=auto watchwho
正则 egrep shell 管道 grep
[解决办法]
应该不是这样的吧

ps ag
[解决办法]
egrep "watchwho$"

对egrep的参数来说,输入是 watchwho$
即这个时候ps看到的是 egrep --color=auto watchwho$
显然这个时候不是满足egrep的匹配的,所以没列出来

ps ag
[解决办法]
tee pslog
[解决办法]
egrep "watchwho$"

lz可以用以上命令验证
[解决办法]
这整个命令去执行。
ps ag
[解决办法]
egrep "watchwho$"

然后egrep "watchwho\$$"这样子的才会匹配到上面这个命令。

所以本身会除去了。

类似egrep "[w]atchwho"的形式一样,需要egrep "\[w\]atchwho"的方式才能把它grep出来。

读书人网 >UNIXLINUX

热点推荐