【发布时间】:2019-01-11 11:52:36
【问题描述】:
我有一个包含约 300K 文本文件的目录,我想将它们连接成一个文件,并使用换行符 \n 分隔每个文件的内容。例如
file1 = 'i like apples'
file2 = 'john likes oranges'
output = 'i like apples\njohn likes oranges'
问题是由于文件较多,像
这样的命令awk '{print}' dir/* combined.txt
抛出关于参数列表太长的错误。有什么快速解决这个问题的方法吗?我一直在尝试找到一种使用管道的方法,但到目前为止没有成功。
文本文件不以\n 结尾。
【问题讨论】:
-
文件写入组合文件的顺序是否重要?
-
不。因此,如果您有一个涉及 GNU
parallel或类似的解决方案,那就更好了! -
我认为并行写入单个文件时会很困难。
-
@shellter 这会引发
Argument list too long错误。 -
@shellter ...然后你就在“为什么不改用
-exec”。
标签: bash unix text-files newline cat