linux之找出两个文件里面相同的数据
1 问题
找出2个文件里面重复的数据(这个问题是csdn排名第一的大神stpeace的专栏在微信里面和我的交流,我当时一脸懵逼)
文件a.txt文件内容如下
cat a.txt
123
123
234
345
456
文件b.txt文件内容如下
cat b.txt
234
345
456
789
789
两个文件重复的数据如下
234
345
456
2 解决办法
1)sort和uniq命令搭配
首先,文件a.txt和b.txt文件本身都有重复数据,我么先自己去重,分别保存在c.txt和d.txt文件里面
sort -u a.txt > c.txt
或者
sort a.txt | uniq > c.txt
sort b.txt | uniq > d.txt
或者
sort -u b.txt > d.txt
然后把c.txt和d.txt文件找出重复数据
sort c.txt d.txt | uniq -d
234
345
456
2)awk命令
awk '{print $1}' c.txt d.txt | sort | uniq -d
234
345
456
3)grep -f
grep -f a.txt b.txt
234
345
456
赞 (0)