我有两个文件。 如果File1的Column1没有进入File2的Column1,则在输出文件中打印整行File1。 如果两个文件的Column1匹配,并且File1的Column2的值说" N"大于" N + 10"或者小于" N-10"而不是File2的Column2的值,然后才打印整行File1。
File1中:
C1 23
C1 24
C2 66
C3 88
C6 100
C7 79
C20 200
文件2:
C1 44
C1 35
C2 70
C4 88
C6 92
C7 90
C9 80
预期输出:
C1 23
C1 24
C3 88
C7 79
C20 200
感谢您帮助解决这个问题。 谢谢。
答案 0 :(得分:1)
使用awk
即可:
awk '
NR==FNR {
lines[NR,"col1"] = $1
lines[NR,"col2"] = $2
lines[NR,"line"] = $0
next
}
(lines[FNR,"col1"] != $1) {
print lines[FNR,"line"]
next
}
(lines[FNR,"col2"]+10 < $2 || lines[FNR,"col2"]-10 > $2) {
print lines[FNR,"line"]
}' file1 file2
C1 23
C1 24
C3 88
C7 79
C20 200
答案 1 :(得分:0)
由于您只有两列我建议使用paste
合并它们,这将使awk
的逻辑变得更加容易:
paste file1 file2 | awk '{ if($1 != $3){print $1,$2}else if($4 > ($2 + 10) || $4 < ($2 -10 )){print $1,$2} }'
C1 23
C1 24
C3 88
C7 79
C20 200