2017-06-13 46 views
1

我必須顯示文件「inventory.txt」和「monitored_servers.txt」上的所有行不匹配。我可以打印所有匹配的行,如下所示:用於打印行的Shell腳本循環不匹配

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

如何顯示所有行不匹配?

+1

旁白:[不讀線,'for'(HTTP:// mywiki.wooledge.org/DontReadLinesWithFor) –

+0

另外,上面(在庫存中每個單詞運行一次'grep')真的很慢。即使對於正面情況,只需一次grep調用即可處理整個庫存,從而獲得更好的性能。 –

回答

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很多! –