遍历文本文件并与其他文件进行比较,并在unix中输出连接文件

时间:2016-04-25 19:45:31

标签: unix

我在bash中有一个场景,其中我有2个文件emp_details.txt和emp_file.txt。 emp_details有员工的详细信息,如下所示

1 emp1 sales
2 emp2 marketng
3 emp3 testing

emp_file.txt有

1 emp1 30 2500
2 emp2 25 1200
3 emp3 33 4000

如何遍历这些文件并创建第三个文件,显示emp 1,emp 2和emp 3的完整详细信息 喜欢

1 emp1 sales 30 2500
2 emp2 marketing 25 1200
3 emp3 testing  33 4000

1 个答案:

答案 0 :(得分:1)

以下是使用awk的一种方式:

awk '
    NR==FNR { emp[$1,$2] = $0; next }
    (($1,$2) in emp) { print emp[$1,$2], $3, $4 }
' emp_details.txt emp_file.txt
1 emp1 sales 30 2500
2 emp2 marketng 25 1200
3 emp3 testing 33 4000

如果您使用的是solaris(unix的变体),请不要使用默认的awk。使用nawk/usr/xpg4/bin/awk

如果此模拟数据与您的实际数据有很大差异,您可能需要自行调整代码或更新问题并更准确地发布代表数据的数据。