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
而下面这样却可以? 我猜测是管道| 命令的问题,兄弟们,你们怎么看?
Plain Text code?123456 $ 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
应该不是这样的吧
ps ag | egrep "watchwho$"
对egrep的参数来说,输入是 watchwho$
即这个时候ps看到的是 egrep --color=auto watchwho$
显然这个时候不是满足egrep的匹配的,所以没列出来
ps ag | tee pslog | egrep "watchwho$"
这整个命令去执行。
ps ag | egrep "watchwho$"
然后egrep "watchwho\$$"这样子的才会匹配到上面这个命令。
所以本身会除去了。
类似egrep "[w]atchwho"的形式一样,需要egrep "\[w\]atchwho"的方式才能把它grep出来。