2 つのパラメーターを使用して grep を実行する方法 (AND 演算); 成功した単語と失敗した単語を含むすべての行を正確に検索します。
例えば:
1. succeeded, failed
2. failed, succeeded
3. failed,failed
4. succeeded, succeeded
5. failed
6. faileds
7. succeeded
行1、2、4のように、「成功」と「失敗」という単語を含む行を検索で返す必要があります
非常に簡単です:
grep succeeded | grep failed
または:
grep 'succeeded.*failed\|failed.*succeeded'
後者のアプローチはあまりうまく拡張できませんが (最終的には単語を含むP(N, N)
副節になりN
ます)、単語間の相対的な位置などを処理する場合はより柔軟になります。
まず、4行目は結果にすべきではないと思います。そこにはありませんfailed
。
grep 'succeeded' input|grep 'failed'
ファイルを 1 回通過するだけで済むいくつかの異なるアプローチ:
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)