我有一个gzipped文件目录,这些文件都已排序。我不知道目录中有多少文件。我想将这些文件合并到一个文件中。我一直在这样做:
find . -type f | xargs zcat | sort
但是,当我添加-m
标志时,它只是一个接一个地连接文件。有没有办法使用sort -m
合并目录中的所有已排序文件?
谢谢!
我想指出@chepner的解决方案非常适用于非压缩文件。
答案 0 :(得分:3)
要合并预先排序的文件,您需要提供名称作为参数,而不是数据作为标准输入。假设您没有 许多文件,请使用
sort -m *
答案 1 :(得分:0)
我找到了答案!
find . -type f | awk '{print "<(gzip -cd "$0")"}' | tr "\n" " " | (echo -n sort -m " "; cat -; echo) | bash
这将查找目录中的所有文件,并将它们作为参数发送到sort命令,在此过程中用空格替换换行符。感谢大家帮忙来到这里!