2013-11-15 162 views
0

我有两个UNL文件:Unix - 如何使用awk合并两个文件?

#a.unl 
31
23371043 
23370043 
300054 
700988 
#twenty records like these 

#b.unl 
310123|name1| 
311123|name2| 
#almost a hundred records like these 
23371043|namex| 

我想用awk,这样我可以参加与名称a.unl记录从b.unl这样的:

#c.unl 
310123|namea| 
23371043|nameb| 
23370043|namec| 
300054|named| 
700988|namee| 

是否有可能使用awk? 还是我必须使用替代像加入?

非常感谢您的帮助

回答

1

使用awk

awk -F'|' 'NR==FNR{a[$0];next}$1 in a' a.unl b.unl 
+0

非常感谢你,这个工程。 – junda

+0

btw,有没有办法将结果打印到c.unl中? – junda

+0

@junda重定向输出:'awk -F'|' 'NR == FNR {a [$ 0]; next}'a.unl b.unl> c.unl'中的$ 1 – devnull