linux比较文本文件

linux比较文本文件

我有file1.txtfile2.txt,都包含 URL,我想创建一个新文件,其中包含file2.txt和 中存在的唯一 URL,而不是file1.txt

示例 url 文件:

aspencabinets.com.au
iiatca.org
energyoil.co.za
tevelatino.com
handball-schule.com
lindaestelle.com
latindancegrooves.com
ugurlu-ozturk.com
robertsdoneright.com
pactoconvex.com
ghaudit.org
keiramontalli.net
taksid.ee
katanics.hu
baggotpureescape.com
naechstenliebe.net
wiki.mbremer.de
boxplandesign.com.sg
lhasa.ca
roboticengineeringprojects.com
killergaming.info
nhswga.com
culnue.eu
fmovers.com
corpuschristicarolstream.org
promedmedikal.com
creationprints.com.au
tsukihime.com

答案1

使用通讯

首先对文件进行排序:

sort file1 -o file1_sorted
sort file2 -o file2_sorted

当然你可以使用

sort file1 -o file1

就地排序

然后使用comm如下:

comm -2 3 file2_sorted file1_sorted > newfile

通讯比较排序的文件

或者,如果您的 shell 支持进程替换(bash、zsh 和一些 ksh):

comm -23 <(sort file2) <(sort file1) > newfile
  • -3:删除第三列(在两个文件中找到的 URL)
  • -2:删除第二列(仅在 中找到的 URL file1_sorted

只剩下第一列(仅在 中找到 URL file2_sorted)。

相关内容