1

2 つのパラメーターを使用して grep を実行する方法 (AND 演算); 成功した単語と失敗した単語を含むすべての行を正確に検索します。

例えば:

1. succeeded, failed
2. failed, succeeded
3. failed,failed
4. succeeded, succeeded
5. failed
6. faileds
7. succeeded

行1、2、4のように、「成功」と「失敗」という単語を含む行を検索で返す必要があります

4

5 に答える 5

4

非常に簡単です:

grep succeeded | grep failed

または:

grep 'succeeded.*failed\|failed.*succeeded'

後者のアプローチはあまりうまく拡張できませんが (最終的には単語を含むP(N, N)副節になりNます)、単語間の相対的な位置などを処理する場合はより柔軟になります。

于 2013-06-05T15:11:19.927 に答える
2

まず、4行目は結果にすべきではないと思います。そこにはありませんfailed

grep 'succeeded' input|grep 'failed'
于 2013-06-05T15:12:19.337 に答える
1

ファイルを 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うまくいくことを望んでいましたが、「両方」ではなく「どちらか一方」を返します。

于 2013-06-05T16:01:55.293 に答える
0
grep 'failed' <(grep 'succeeded' inputFile)
于 2013-06-05T15:52:11.577 に答える