我在/ var / tmp目录下有以下文件(超过80个文件)
report1.txt
report2.txt
report3.txt
.
.
.
.
.
合并所有文件的最佳方法是:将[1-N] .txt 报告到一个文件
现在我执行以下步骤以将所有文件合并到一个文件中(但这种方式并不优雅..)
cat report1.txt >> report2.txt
cat report2.txt >> report3.txt
.
.
.
.
答案 0 :(得分:4)
您可以使用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
答案 1 :(得分:1)
您可以使用*
cat report* > newfile
它将以report
开头的所有文件并将它们放入一个新文件