![如何以相反的顺序连接文件](https://linux22.com/image/205139/%E5%A6%82%E4%BD%95%E4%BB%A5%E7%9B%B8%E5%8F%8D%E7%9A%84%E9%A1%BA%E5%BA%8F%E8%BF%9E%E6%8E%A5%E6%96%87%E4%BB%B6.png)
我希望按照与列表中显示的顺序相反的顺序连接目录中的文件列表。
tac
这与以tac
相反的行顺序连接文件不同。
基本上我有一个包含 3 个文件的文件夹file1
,file2
和file3
.
cat f* > newfile
将像这样合并这些文件:
file1
file2
file3
但是,我想像这样合并文件
file3
file2
file1
同时保持正确的线路顺序。
答案1
tac
这与tac
以相反的行顺序连接文件不同
…而不是按照所需的相反文件顺序。令人惊讶的是这是好的,因为tac
对整个输出进行额外的操作将为您提供您想要的结果:
tac f* | tac
答案2
尝试“支撑扩展”(参见man bash
):
set -vx
cat file{3..1}
+ cat file3 file2 file1
答案3
您可以要求ls
对它们进行排序,然后连接cat
:
ls -1r | xargs -d'\n' cat
如果您想使用其他排序顺序,或打乱条目,则可以更改管道的左侧部分。
在这种情况下,-1
将在每一行中列出一个文件名,并且确实-r
会反转顺序(因为未指定,所以根据您的语言环境,它是按字母顺序排列的)。