【发布时间】:2017-09-16 04:49:54
【问题描述】:
我有一个所有已排序的 gzip 文件目录。我不知道目录中有多少文件。我想将这些文件合并到一个文件中。我一直在这样做:
find . -type f | xargs zcat | sort
但是,当我添加 -m 标志时,它只是将文件一个接一个地连接起来。有没有办法使用sort -m 来合并一个目录中所有排序的文件?
谢谢!
我想指出@chepner 的解决方案非常适用于非压缩文件。
【问题讨论】:
-
sort命令不能将压缩文件作为输入。 -
sort -m不排序;它仅合并其预先排序的输入文件。当您从标准输入读取时,您只有 一个 输入文件。在这种情况下,您根本不需要-m。 -
我想简单地合并文件,因为我知道它们都已排序,这可能吗?
-
那么,例如,您有
log.3.gz,其数据后面是log.2.gz,然后是log.1.gz?您的find命令可能不会按照您期望的顺序输出文件。 -
文件的排序顺序无关紧要。我只需要弄清楚如何进行排序以识别我正在合并许多文件,而不是一个。
标签: linux bash sorting unix gzip