使用bash shell脚本按数字顺序逐个附加csv文件

给定名为1.csv,2.csv,3.csv,… 89.csv … n.csv的文件

如何在bash
shell脚本中以数字顺序(1到n)将它们一起追加?

这个解决方案有一个单线程吗? 最佳答案 如果您的文件以前导零命名,则会更容易,即

  cat [0-9].csv [0-9][0-9].csv .... > new.csv

但是给出真正的数字顺序并不难

ls -1
1
10
11
12
13
2
20
21
3
7
8
9

(在两个样本中,请注意ls的选项是第一个,(1),而不是字母L(l))

ls -1 [0-9]* | sort -n
1
2
3
7
8
9
10
11
12
13
20
21

然后

  cat $( ls -1 *.csv | sort -n  ) > new.csv

假设您的所有csv文件都已编号.

如果您有超过1000个文件,shell中的文件arg处理可能会中断,您应该发布一个新问题以正确使用xargs.

要查看发生了什么,请添加shell调试/跟踪使用

 set -vx  # to turn on
 set +vx  # to turn it off

.

IHTH.

点赞