3
我有2個文件A和B.兩者都有超過100行。我想刪除這兩個文件之間的通用行。
答:如何在vi編輯器或linux中找到並刪除兩個文件中的重複行
asdf123
fdsa123
rrrr456
yyyy555
B:
fdsa123
hhhh888
yyyy555
所以,現在的文件應該
A1:
asdf123
rrrr456
B1:
hhhh888
我有2個文件A和B.兩者都有超過100行。我想刪除這兩個文件之間的通用行。
答:如何在vi編輯器或linux中找到並刪除兩個文件中的重複行
asdf123
fdsa123
rrrr456
yyyy555
B:
fdsa123
hhhh888
yyyy555
所以,現在的文件應該
A1:
asdf123
rrrr456
B1:
hhhh888
你可以試試:
awk -f del.awk fileA fileB > fileB.del
awk -f del.awk fileB fileA > fileA.del
其中del.awk
是
NR==FNR {
a[$0]++
next
}
! ($0 in a) {
print
}
您可以使用grep
這個:
$ grep -vf a b # or grep -vf a b > b1 to save it
hhhh888
$ grep -vf b a # or grep -vf b a > a1 to save it
asdf123
rrrr456
注意grep -f file1 file2
檢查從file1
出現在file2
行。也就是說,從file1
獲取模式。
然後,grep -v
代表反轉匹配。也就是說,要得到與grep
命令相反的結果。
值得注意的是,默認情況下,grep會匹配具有正則表達式的行,在這種情況下不需要這些行。 您需要添加** - F **參數,以便grep比較行作爲普通字符串: 'grep -Fvf file1 file2' – AlexM