我試圖使用存儲在文件filter.txt中的模式從data.txt中過濾數據。如下圖所示,grep -vf對於大文件來說太慢
grep -v -f filter.txt data.txt > op.txt
這grep的時間超過10-15分鐘30-40K線filter.txt和300K〜行data.txt中。
有什麼辦法可以加快這個速度嗎?
的data.txt
data1
data2
data3
filter.txt
data1
op.txt
data2
data3
這適用於由codeforester提供的解決方案,但在filter.txt是空的失敗。
請包括來自這兩個文件樣本線。你可能想看看這個帖子,這個帖子對這個問題有廣泛的討論:http://stackoverflow.com/questions/42239179/fastest-way-to-find-lines-of-a-text-file-from-另一個更大的文本文件在bash – codeforester
感謝您的鏈接。關於類似問題的良好討論。 awk'FNR == NR {hash [$ 1];下一個} $ 2在散列'file1.txt FS ='|' file2.txt適用於匹配行,但需要反轉結果。不知道如何使它適用於反轉匹配。 – user3150037