如何用Bash命令按对应行合并两个文件的内容?
用Bash命令按行合并两个文件(逗号分隔)
要实现将两个文件的对应行用逗号连接合并,有以下几种实用的Bash命令方案:
方法1:使用paste命令(推荐)
paste是专门用于按行合并文件的工具,通过-d参数指定分隔符即可完成需求:
paste -d ',' file1 file2
示例:
假设file1内容:
a b c d
file2内容:
1 2 3 4
执行命令后输出:
a,1 b,2 c,3 d,4
-d ','表示用逗号作为两行之间的分隔符,默认情况下paste会用制表符分隔内容。
方法2:使用awk命令
如果需要更灵活的自定义处理逻辑,可以用awk脚本实现:
awk 'NR==FNR{a[NR]=$0;next} {print a[NR]","$0}' file1 file2
逻辑说明:
NR==FNR:处理第一个文件(file1)时,将每行内容存入数组a,下标对应行号NRnext:跳过后续逻辑,继续处理file1的下一行- 处理第二个文件(
file2)时,取出数组中对应行号的内容,与当前行用逗号连接后输出
如果需要将合并结果保存到新文件,只需在命令末尾添加重定向:
# 用paste保存结果 paste -d ',' file1 file2 > merged_file.txt # 用awk保存结果 awk 'NR==FNR{a[NR]=$0;next} {print a[NR]","$0}' file1 file2 > merged_file.txt
内容的提问来源于stack exchange,提问作者user2349201
相关产品推荐
相关产品推荐

