從另一個文件(無序)中刪除一個文件中列出的項目的最有效方法(不重複執行命令)是什麼?
人們可以透過以下方式輕鬆取得第二個檔案中不匹配項目的列表
cat first_file.txt second_file.txt | sort | uniq -u
但這也將包含第一個文件中的所有不匹配的項目...現在怎麼辦?
答案1
該awk
程式對每個文件進行一次遍歷:
awk '
NR == FNR {f1[$0] = 1; next}
!($0 in f1)
' file1 file2
comm
對這項工作很有用。它確實需要對輸入檔進行排序:
# output lines unique to file2
comm -13 <(sort file1) <(sort file2)