Используя файл на основе perl --, переименуйте (из пакета Ubunturename
):
$ 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
, как только убедитесь, что он работает правильно.
Вызов cut
должен помочь:
cut -d_ -f-2,4-
проверьте это с помощью:
echo "279796_MPR_26438044_0001.dcm" | cut -d_ -f-2,4-
Использование его для переименования группы файлов становится:
for f in *.dcm; do mv "$f" "$(echo "$f" | cut -d_ -f-2,4-)"; done
cut
разделить слово на каждое вхождение разделителя_
(-d _
)и вывести поле с первого на второе(-f-2
)и с четвертого на последнее(,-4-
).