2013-09-24 40 views
0

我有兩個數據文件的列數相似。我想將file2保存在另一個文件(file3)中,而我排除已存在於file1中的行。如何比較兩個文件並刪除其中的相似行(bash腳本)

grep -v -i -f file1 file2> file3 

但問題是,file1中的列之間的空間是「\ t」,而在另一個它只是「」。因此這個命令行不起作用。 任何建議?

謝謝大家!

+1

歡迎SO!如果您可以發佈一些示例輸入以及預期輸出,那將會很好。使它更容易回答 –

回答

0

嘗試:可以從grep的手冊頁

grep -Fxvf file1 file2 

開關的含義。

1

可以製表符轉換爲空格上飛:

grep -vif <(tr '\t' ' ' < file1) file2 > file3 

這是process substitution

0

grep -v -f有問題,因爲它在file1中搜索file2中的每一行。大文件需要很長時間。試試這個:

COMM -13 <(貓文件1 | TR '\ t' '' |排序)<(排序文件2)

相關問題