给定名为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.