为名称中具有通用字符串的一组文件创建目录

为名称中具有通用字符串的一组文件创建目录

我有很多文件,所有文件都类似于以下内容:

frame1_M.png
frame1_S.png
frame1_L.png
frame1_N.png
frame1_D.png
frame1_M.png
frame1_S.png
frame1_L.png
frame1_N.png
frame1_D.png
frame2_M.png
frame2_S.png
frame2_L.png
frame2_N.png
frame2_D.png
frame3_M.png
frame3_S.png
frame3_L.png
frame3_N.png
frame3_D.png

我怎样才能将 frame1 的所有项目放在当前目录中名为 frame1 的目录中,frame2 和其余帧也是如此。如您所见,在每组中,只有帧编​​号是共同的。

这只是一个例子。文件大小在 30k 左右,因此需要使用终端/bash 来完成。*在实际场景中,帧号完全是随机的,没有顺序,所以这对我来说是一项非常具有挑战性的任务。

答案1

_adb:

for q in *.png; do mkdir -p "${q%_*}"; mv "$q" "${q%_*}"; done

来自 #bash IRC 频道!非常感谢 _adb!效果神奇!

相关内容