簡體   English   中英

查找兩個文件之間的差異

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM