如何解决从两个文本文件中找到具有不同值的相同键
我有两个文件的数据格式如下:
cat File1.txt
A: 1
B: 2
C: 3
D: 4
E: 5
cat File2.txt
A: 10
B: 2
C: 30
D: 4
F: 6
我想知道如何打印常用键的差异,例如:
A: 1,10
C: 3,30
解决方法
你可以试试
awk -F":" 'NR==FNR{a[$1]=$2} FNR!=NR && a[$1] && a[$1]!=$2{print $1":"a[$1]","$2}' File1.txt File2.txt
,
由于文件中似乎没有重复项,因此应该这样做:
$ awk '{if(($1 in a)&&$2!=a[$1])print $1,a[$1] "," $2;else a[$1]=$2}' file1 file2
输出:
A: 1,10
C: 3,30
说明:
$ awk '{
if(($1 in a) && $2!=a[$1]) # if $1 already seen and $2 not equal to previous
print $1," $2 # output
else
a[$1]=$2 # else store the value as seen for the first time
}' file1 file2
,
$ cat tst.awk
BEGIN { OFS="," }
NR==FNR {
a[$1] = $2
next
}
($1 in a) && (a[$1] != $2) {
print $0,a[$1]
}
$ awk -f tst.awk file2 file1
A: 1,30
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。