遍历文本文件并与其他文件比较并输出unix中的连接文件
问题描述:
我在bash中有一个场景,其中有2个文件emp_details.txt和emp_file.txt。 emp_details拥有员工的详细信息如下遍历文本文件并与其他文件比较并输出unix中的连接文件
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
答
这里使用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
。
如果这种模拟的数据与您的实际数据大不相同,您可能需要自行调整代码或更新您的问题并更准确地发布代表您的数据的数据。
使用您的cmd行并阅读'join' cmd的文档,即'man join'。您也可以在这里和www上搜索使用'join'的教程和示例。祝你好运。 – shellter
@diptea,这些行号实际上在你的文件中? –