Linux Bash中如何按行交错合并多个文本文件
Linux Bash中如何按行交错合并多个文本文件
嘿,这个需求其实用Bash里的几个工具就能轻松搞定,我给你分享两种实用的方法,刚好匹配你给出的示例场景:
方法一:使用paste命令(最简洁)
paste命令本身是用来按列合并文件的,我们只要指定换行符作为列分隔符,就能实现按行交错合并的效果。
针对你给出的示例文件:
fileA内容:
1
4
7fileB内容:
2
5
8fileC内容:
3
6
9
只需要执行这条命令:
paste -d '\n' fileA fileB fileC > file_output
执行后file_output的内容就会是:
1
2
3
4
5
6
7
8
9
命令解释:
-d '\n':指定paste的列分隔符为换行符,这样每个文件的对应行就会依次换行输出,完美实现交错合并的需求。
方法二:使用pr命令
如果你习惯用pr工具,也可以用它来实现,这个命令原本是用来格式化打印文件的,加上参数后也能完成合并:
执行命令:
pr -m -t fileA fileB fileC > file_output
同样能得到和上面一致的输出结果。
命令解释:
-m:启用多文件合并模式,将多个文件的内容按列合并;-t:去掉默认的页眉和页脚,只保留合并后的纯内容。
备注:内容来源于stack exchange,提问作者Estatistics
相关产品推荐
相关产品推荐

