簡體   English   中英

根據部分文件名合並文件

[英]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

這應該工作

來源: http//go2linux.garron.me/bash-for-loop/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM