比较两个文件与第一列匹配文本和第一个文件的第二列>比第二个文件的第二列值

时间:2015-06-04 00:31:54

标签: awk compare multiple-columns

寻找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

2 个答案:

答案 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