比较和组合两个文件(shell脚本)

时间:2014-06-18 19:23:42

标签: shell

我有两个输入文件。

我需要比较file1和file2,并在两个文件中组合具有相同第一个字段的行。 (该行的其余部分可以忽略该行的其余部分。)

理想情况下,我希望输出文件中的字段是管道分隔的。

我在想一个简单的shell脚本就是我所需要的。

文件1

0001|14
9934|3
4555|33

file2的

0001|coffee|grocery store
0003|gasoline
0005|pickup sticks
9934|protein bars
4555|car

期望的输出:

file3的

0001|14|0001|coffee|grocery store
9934|protein bars
4555|33|4555|car

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

使用awk:

awk 'BEGIN{FS=OFS="|"} FNR==NR {a[$1]=$0; next} $1 in a {print a[$1], $0}' f1 f2
0001|14|0001|coffee|grocery store
9934|3|9934|protein bars
4555|33|4555|car