如何使用两个参数(操作 AND)进行 grep;找到包含单词的所有行都完全成功和失败。
例如:
1. succeeded, failed
2. failed, succeeded
3. failed,failed
4. succeeded, succeeded
5. failed
6. faileds
7. succeeded
我需要该搜索返回包含单词“succeeded”和“failed”的行,如第 1、2 和 4 行
很简单:
grep succeeded | grep failed
或者:
grep 'succeeded.*failed\|failed.*succeeded'
后一种方法不能很好地扩展(您最终会得到P(N, N)
带有单词的子条款N
),但在处理单词之间的相对位置等问题时可以更加灵活。
首先,我认为第 4 行不应该是结果。里面没有failed
。
grep 'succeeded' input|grep 'failed'
用 AND 对存在于同一行的 2 个单词进行 grep
grep succeeded FILE | grep failed
grep succeeded FILE
将从 FILE 中打印所有grep failed
成功的行,然后从 grep succeeded FILE
. 因此,如果您使用管道将这些组合起来,它将显示包含成功和失败的行。
几种不同的方法只需要一次通过文件:
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 'failed' <(grep 'succeeded' inputFile)