使用第一个单词比较两个文件并返回第二个单词

时间:2014-11-05 17:31:45

标签: shell unix

我正在编写一个korn shell脚本来尝试将一个包含用户名的文件与另一个包含用户名和电子邮件的文件进行比较。示例如下:

文件1:

user1
user2
user5

file2的:

user1|email1
user2|email2
user3|email3
user4|email4
user5|email5

无论如何,我只能将匹配用户名的电子邮件返回给file3吗?我想我必须使用comm命令,但我不确定如何完全实现它。

file3的:

email1
email2
email5

感谢任何帮助。感谢

2 个答案:

答案 0 :(得分:2)

另一种解决方案:

grep -f file_1 file_2 | cut -d '|' -f2

但是grep不是那么强大,它可以找到误报。如果您希望它是健壮的,请调整文件1,如下所示:

\buser1@
\buser2@
\buser5@

您应该以编程方式逐行破坏文件。

答案 1 :(得分:1)

适当的解决方案似乎是join

join -t '|' file_1 file_2 | cut -d '|' -f2