我有两个.txt文件,其数据以
格式存储的1.txt
ASF001-AS-ST73U12
ASF001-AS-ST92U14
ASF001-AS-ST105U33
ASF001-AS-ST107U20
和
2.txt
ASF001-AS-ST121U21
ASF001-AS-ST130U14
ASF001-AS-ST73U12
ASF001-AS-ST92U14
` 我需要找到 1.txt 中但不在 2.txt 中的文件。
我尝试使用
diff -a --suppress-common-lines -y 1.txt 2.txt > finaloutput
但它无效
答案 0 :(得分:1)
您可以在此使用comm
而不是差异:
comm -23 <(sort 1.txt) <(sort 2.txt)
ASF001-AS-ST105U33
ASF001-AS-ST107U20
或者此awk
也可以使用:
awk 'FNR==NR {a[$1];next} $1 in a{delete a[$1]} END {for (i in a) print i}' 1.txt 2.txt
ASF001-AS-ST107U20
ASF001-AS-ST105U33
答案 1 :(得分:0)
一个相对简单的bash脚本可以满足您的需求:
#!/bin/bash
while read line || test -n "$line"; do
grep -q $line "$2" || echo "$line"
done < "$1"
exit 0
<强>输出:强>
$ ./uniquef12.sh dat/1.txt dat/2.txt
ASF001-AS-ST105U33
ASF001-AS-ST107U20