如何进行双参数grep (AND操作);查找包含成功和失败的所有行
,
1. succeeded, failed
2. failed, succeeded
3. failed,failed
4. succeeded, succeeded
5. failed
6. faileds
7. succeeded
我需要搜索返回包含单词"succeeded"one_answers"failed"的行,如第1、2和4行
非常简单:
grep succeeded | grep failed
另外:
grep 'succeeded.*failed|failed.*succeeded'
后一种方法不能很好地扩展(你最终会得到P(N, N)
子条款和N
词),但在处理词之间的相对位置时可以更灵活。
首先,我认为第4行不应该是结果。里面没有failed
grep 'succeeded' input|grep 'failed'
只需要一次遍历文件的几种不同方法:
awk '/succeeded/ && /failed/' file
sed -n '/succeeded/ {/failed/ p}' file
perl -ne 'print if /succeeded/ and /failed/' file
我希望grep -e succeeded -e failed file
会工作,但它返回"一个或另一个"而不是"两者"。
查找与
在同一行中存在的两个单词grep succeeded FILE | grep failed
grep succeeded FILE
将从FILE中打印所有成功的行,然后grep failed
将从grep succeeded FILE
的结果中打印所有失败的行。因此,如果您使用管道将它们组合在一起,它将显示包含成功和失败的行。
grep 'failed' <(grep 'succeeded' inputFile)