我有两个文件。在每个文件中,我有两列。我需要将file1的第二列的第一个值与file2的第二列中的每个值相匹配。如果它们相等,我需要将两列(file1和file2中的第一列)放在一个文件中,但它们应该彼此相邻。如果两个值不匹配,则不执行任何操作。
文件1
344 0
465 1
729 2
777 3
676 4
862 5
file2的
766 0
937 1
980 2
837 3
936 5
示例输出:
344 766
465 937
729 980
777 837
862 936
答案 0 :(得分:2)
如果您坚持在awk
awk 'NR == FNR {arr[$2] = $1; next} {if ($2 in arr){print(arr[$2], $1)}}' file1 file2
答案 1 :(得分:2)
awk 'NR==FNR { values[$2] = $1; next; }
{ if ($2 in values) print values[$2], $1 }' file1 file2
虽然记录号等于文件记录号(在读取第一个文件时),但在values[$2]
的第1列中隐藏值,跳到下一条记录。处理第二个文件时,如果values[$2]
中有值,请在values[$2]
和$1
中打印出值。