[英]Merge files based on part of file name
我的文件夾中包含約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的解決方案。
對於python解決方案,mnistic所提供的注釋指向解決方案。 如果您想要一個bash解決方案,則可以將find
命令與-exec標志一起使用,例如
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
這應該工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.