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でこれを行う方法はありますか?
ファイル名の後にランダムな数字を並べ替えてから、すべて削除します。しかし、詰まっています。
ベストアンサー1
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
それが正しいことをすることを確信したら、取り除きなさい。
bashシェルとKSHスタイルの拡張ワイルドカードを使用します。
$ 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
正しいことをしていると確信している場合は、削除してください。