我在unix环境中有2个文件
文件1:
1 a
2 b
3 c
file2的:
----------
## Heading ##
2 bb
1 aa
3 cc
如何获取输出文件
输出:
1 a 1 aa
2 b 2 bb
3 c 3 cc
使用unix shell脚本
答案 0 :(得分:1)
使用awk。这是一个awk经典:
$ awk 'NR==FNR{a[$1]=$0;next}$1 in a{print a[$1],$0}' file1 file2
2 b 2 bb
1 a 1 aa
3 c 3 cc
说明:
$ awk '
NR==FNR { # process first file
a[$1]=$0 # hash record, use first field as hash key
next # move to next record
}
$1 in a { # second file, if key found in the hash
print a[$1],$0 # output it from the hash along with the current record
}' file1 file2 # mind the order
订单将是第二个文件订单。如果您希望以其他顺序排序,请排序file2
(awk ... file1 <(sort file2)
)或awk进程的输出(awk ... | sort
)。