![linux比较文本文件](https://linux22.com/image/83125/linux%E6%AF%94%E8%BE%83%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6.png)
我有file1.txt
和file2.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
)。