linux + 什么是合并文件的最佳方式

标签 linux bash awk sed ksh

我在/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/

相关文章:

linux - Bash 脚本无法执行 bash 脚本

arrays - 从 Bash 函数返回数组

git - 将 Git 更新到 MacBook Pro Sierra 上的官方发行版

awk - 使用 awk 将矩阵转换为值对

awk - 如何在 TCL-expect 字符串中引用 shell 变量

linux - bash 变量中的 Bash 脚本

linux - 如果用户存在 Ansible 则更新密码

linux - Grep 递归和计数

sed - 单行删除特定字符出现次数超过 x 次的行

c++ - 在 macos 中热用 gdb