如何以相反的顺序连接文件

如何以相反的顺序连接文件

我希望按照与列表中显示的顺序相反的顺序连接目录中的文件列表。

tac这与以tac相反的行顺序连接文件不同。

基本上我有一个包含 3 个文件的文件夹file1file2file3.

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会反转顺序(因为未指定,所以根据您的语言环境,它是按字母顺序排列的)。

相关内容