我在文件夹中有大约450个csv文件,其格式为名称(下面的示例名称):
1_a.csv
1_b.csv
1_c.csv
...
1_h.csv
2_a.csv
2_b.csv
...
2_h.csv
...
42_a.csv
...
42_h.csv
我希望将“1_xxx.csv”类型的所有文件合并到“1.csv”中,将所有格式为“2_xxx.csv”的文件合并为“2.csv”,依此类推。
我尝试过使用cat,但我一次只能合并一组文件。有没有办法在linux中循环运行命令?任何基于Python3的解决方案也是受欢迎的。
答案 0 :(得分:0)
对于python解决方案,由mnistic提供的注释链接到解决方案。如果你想要一个bash解决方案,你可以使用带有-exec标志的find
命令,如
find . -name "1_*.csv" -exec cat {} >> 1.csv \;
该命令应该找到所有以1_开头的csv文件,然后将它们附加到文件1.csv。
有关查找结帐https://ss64.com/bash/find.html
的详细信息编辑: 对于循环
for i {1..450}
do
find . -name "$i_*.csv" -exec cat {} >> $i.csv \;
done
这应该有效