使用bashshell脚本按数字顺序逐个追加csv文件

使用bashshell脚本按数字顺序逐个追加csv文件,shell,Shell,给定名为1.csv、2.csv、3.csv、…89.csv的文件。。。n、 csv 如何在bashshell脚本中按数字顺序(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(1),而不是

给定名为1.csv、2.csv、3.csv、…89.csv的文件。。。n、 csv 如何在bashshell脚本中按数字顺序(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(1),而不是字母L(L))

然后

假设所有csv文件都已编号

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

要查看正在发生的情况,请添加shell调试/跟踪使用

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


IHTH.

一个带有内联参数的线性程序(应将N替换为最大文件号)。脚本将跳过未列出的文件,所以若您在序列中遗漏了几个文件,则不会出现错误:)

或带有参数的脚本

#!/bin/bash

for i in `seq 0 $1`
do
    if [ -f "$i.csv" ]
    then
        cat $i.csv >> $2
    fi
done
用法:./script.sh MAX\u CSV\u ID结果文件


示例:./script.sh 89 new.csv

ls-l*.csv | sort-n-rw-r--r--1 root root 110427099 Sep 4 20:37 94.csv-rw-r--r--1 root 110439250 Sep 4 20:15 93.csv-rw-r--r--1 root 111962812 Sep 4 19:53 92.csv-rw-r--r--1 root 114716696 Sep 4:35.csv-rw-r--1 root115487626 Sep 4 08:05 35.csv-rw-r--r--1根根115777573 Sep 3 20:25 1.csv注意是-1(一),而不是-l(字母l)。祝你好运
 set -vx  # to turn on
 set +vx  # to turn it off
for i in `seq 0 N`; do test -f $i.csv && cat $i.csv; done >> result.csv
#!/bin/bash

for i in `seq 0 $1`
do
    if [ -f "$i.csv" ]
    then
        cat $i.csv >> $2
    fi
done