我在/var/tmp 目录下有以下文件(超过 80 个文件)
report1.txt
report2.txt
report3.txt
.
.
.
.
.
合并所有文件的最佳方式是什么:report[1-N].txt 到一个文件
现在我执行以下步骤以将所有文件合并为一个文件(但这种方式不是优雅的方式..)
cat report1.txt >> report2.txt
cat report2.txt >> report3.txt
.
.
.
.
最佳答案
你可以使用 brace expansion :
cat report{1..80} > allreports.txt
编辑:根据您的评论,您想使用一个变量。由于大括号扩展发生在变量扩展之前,因此不能在大括号内使用变量。另一种方法是使用具有自定义格式的 seq
:
cat $(seq -f "report%g.txt" $NUM) > allreports.txt
其中 NUM
是您要传递的变量。默认情况下,序列将从 1 开始。如果您想更改它,请指定第一个和最后一个数字(或变量):
cat $(seq -f "report%g.txt" $start $end) > allreports.txt
关于linux + 什么是合并文件的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23801516/