2017-06-13 6 views
1

"inventory.txt"と "monitored_servers.txt"ファイルですべての行が一致しないと表示する必要があります。行を印刷するためのシェルスクリプトループが一致しません

for i in `cat inventory.txt`; do grep $i monitored_servers.txt >> result.txt; done 

すべての行を表示する方法が一致しません。一致する行をすべて印刷できましたか?

+1

別にテンプレートとしてファイルを使用して:(HTTP [ 'for'持つ行読んでいない]を:// mywiki.wooledge.org/DontReadLinesWithFor) –

+0

また、上記の(インベントリ内の単語ごとに 'grep'を実行すると)上記は本当に遅いです。肯定的なケースであっても、インベントリ全体を処理するgrep呼び出しが1つだけで、パフォーマンスが大幅に向上します。 –

答えて

2
grep -v -f inventory.txt monitored_servers.txt >non-matching.txt 
+2

'-x'も重要かもしれません – janos

+0

@ janos、...多分、OPは元の使用法の結果に満足しているので、私は確信していません。 –

1
grep -v --file inventory.txt monitored_servers.txt 

-v - 一致しない行

--file -

+0

私は25秒であなたを倒すと思う。 :) –

+0

くそー、素早くです;) –

+0

\ o /:D Tksたくさん! –

関連する問題