[英]Finding the differences between two files
我有幾個軟件包列表,其中包含數百個條目,我想找到它們之間的區別。
文件內容看起來像
文件1:
somepackage1 0.1
somepackage2 5.6
somepackage3 1.3-1
etc...
檔案2:
somepackage1 0.1
somepackage2 5.7
somepackage3 1.3-1
somepackage4 0.1
etc...
我正在尋找可以產生所有新添加的軟件包的命令或腳本。 不僅是版本號,還包括是否添加了新軟件包。
因此,例如,給定上述兩個文件,命令或腳本將輸出somepackage4
。
我一直在玩一些命令,但其中任何一個都無法正常工作。 有人有這樣做的好方法嗎?
您似乎想比較文件中的第一列,並打印第二列中唯一的行。 使用comm
:
comm -13 <(awk '{print $1}' file1 | sort) <(awk '{print $1}' file2 | sort)
對於您的輸入,它將產生:
somepackage4
你可以使用grep
查找文件2中列出但文件1中未列出的軟件包
grep -vf <(cut -d' ' -f1 file1) <(cut -d' ' -f1 file2)
使用awk
awk 'NR==FNR{a[$1];next}!($1 in a){print $1}' file1 file2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.