寻找awk one liner:
我有两个文件,每个文件有两列
我需要打印两个文件中第一列匹配的记录 并且第二文件值列是>比第一个文件值列。
文件1
AAAA 322
BBBB 322
DDDD 200
file2的
AAAA 700
CCCC 400
DDDD 100
寻找结果
AAAA 700
感谢任何帮助。到目前为止,我可以匹配第1列,但不知道如何计算第二个值列,当它是< s>
awk 'NR == FNR{a[$1];next}$1 in a' file1.txt file2.txt
AAAA 700
DDDD 100
更新
我想我可能通过撤消文件顺序并使用:
来获得它awk 'FNR==NR{a[$1]=$2 FS $3;next}{ print $0, a[$1]}' file2.txt file1.txt|awk '$3 > $2' |awk '{print $1" "$3}'
AAAA 700
答案 0 :(得分:1)
awk 'FNR==NR{a[$1]=$2 FS $3;next}{ print $0, a[$1]}' file2.txt file1.txt|awk '$3 > $2' |awk '{print $1" "$3}'
AAAA 700
这实现了我之后的输出
答案 1 :(得分:1)
<强>输入强>
[akshay@localhost tmp]$ cat file1
AAAA 322
BBBB 322
DDDD 200
[akshay@localhost tmp]$ cat file2
AAAA 700
CCCC 400
DDDD 100
<强>输出强>
[akshay@localhost tmp]$ awk 'FNR==NR{A[$1] = $2; next}($1 in A) && $2 > A[$1]' file1 file2
AAAA 700