我在 Macbook 上,想使用 bash 來完成任務。
假設我在一個目錄中有一個檔案串列,例如:
item1_2352352352.jpg
item2_2352352352.jpg
item3_2352352352.jpg
item3_2352352352.jpg
如何使用 bash 單線對這些檔案進行排序并將其移動到新檔案夾中?如果不是 bash,python 也可以。
我希望將檔案夾命名為 item1、item2 等(第一個下劃線之前的所有內容)。
uj5u.com熱心網友回復:
這樣就可以了:
for i in item*_*; do folder=${i%_*}; mkdir -p "$folder"; mv -n "$i" "$folder"; done
解釋:
for i in item*_*; do # for loop, loops over every file which fits the expression "item*_*" and puts current filename in $i
folder=${i%_*} # removes everything after a "_" from $i and saves the output to $folder
mkdir -p "$folder" # creates folder with content of $folder and without errors if directory exists (-p)
mv -n "$i" "$folder" # moves files without overwriting (-n)
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/451492.html
上一篇:對多個不同檔案中的數字求和
