如何将grep命令与多个搜索字符串一起使用?

时间:2015-09-09 06:24:45

标签: unix terminal grep

当我使用时:ps -o user,cmd我的输出是:

User    CMD
0        in.telnetd
0        sh
0        processd
0        processe
0        in.telnetd
0        -sh
0        top

我想在执行grep命令后得到2行(包含processd& processe)。

我用过的东西:

 1.   ps -o user,cmd | grep "processd\|processe"
 2.   ps -o user,cmd | grep processd | grep processe

我使用正确的格式来grep我想要的东西,还是我需要修改我的查询?

2 个答案:

答案 0 :(得分:1)

一种方式是:

ps -o user,cmd | grep "process[de]"

当然你可能最终也会抓住像

这样的行
0        /some/other/app --with --lots of arguments including also processe

为了确保你没有抓住它,你应该使用awk。

答案 1 :(得分:1)

您正在寻找

ps -o user,cmd | egrep "processd|processe"

当我需要检查日志文件时,我会使用类似的东西:

interesting="keyword1"
interesting+="|key2
interesting+="|key3"
skip="garbage1"
skip+="|garb2"
skip+="|garb3"

grep "^20150909" logfile | egrep "${interesting}" | egrep -v "${skip}"