Linux
如何重新排列和刪除文件名
我正在嘗試在 cmd (Ubuntu) 中刪除我的文件名中的隨機數。
我想做的是:
279796_3D AXL MPR_26438044_0001.dcm —> 279796_3D AXL MPR_0001.dcm
279796_3D AXL MPR_26438446_0011.dcm —> 279796_3D AXL MPR_0011.dcm
另外,有沒有辦法在python中做到這一點?
我打算將隨機數重新排列到文件名的後面,然後一起刪除這些數字。但我被卡住了。
使用基於 perl 的文件重命名(來自 Ubuntu 包
rename
):$ rename -n 's/_\d+_/_/' *.dcm rename(279796_3D AXL MPR_26438044_0001.dcm, 279796_3D AXL MPR_0001.dcm) rename(279796_3D AXL MPR_26438446_0011.dcm, 279796_3D AXL MPR_0011.dcm)
使用
mmv
:$ mmv -n '*_*_*_*.dcm' '#1_#2_#4.dcm' 279796_3D AXL MPR_26438044_0001.dcm -> 279796_3D AXL MPR_0001.dcm 279796_3D AXL MPR_26438446_0011.dcm -> 279796_3D AXL MPR_0011.dcm
-n
一旦你對它會做正確的事情感到滿意,就刪除它。使用帶有 KSH 風格的擴展萬用字元的 bash shell:
$ shopt -s extglob $ for f in *.dcm; do echo mv -n -- "$f" "${f/_+([0-9])_/_}"; done mv -n -- 279796_3D AXL MPR_26438044_0001.dcm 279796_3D AXL MPR_0001.dcm mv -n -- 279796_3D AXL MPR_26438446_0011.dcm 279796_3D AXL MPR_0011.dcm
echo
在這裡,一旦您對它正在做正確的事情感到滿意,請刪除它。