Ubuntu下基于ID合并两个文本文件的最优方法咨询
最优实现方案
在Ubuntu终端中,使用awk命令就能高效完成这个文本合并需求,这是处理此类编号关联文本的最优方式,直接执行以下命令即可:
awk 'NR==FNR{if($1 in first) first[$1] = first[$1] " " $2; else first[$1] = $2; next} {print $1, first[$1], $2}' Firstname.txt Name.txt > User.txt
命令逻辑说明:
NR==FNR:仅对第一个输入文件(Firstname.txt)执行后续逻辑if($1 in first)...:把同一编号下的多个名字拼接成完整字符串,存入数组first(数组键为编号,值为拼接后的名字)next:跳过后续步骤,继续处理第一个文件的下一行- 处理第二个文件(
Name.txt)时,按编号取出对应的名字,以「编号 名字 姓氏」的格式输出,最终结果写入User.txt
执行完命令后,你就能得到符合需求的目标文件。
内容的提问来源于stack exchange,提问作者Hab
相关产品推荐
相关产品推荐

