У вас правильный подход. Возможно, вы пропустили окончание g
в своем регулярном выражении, которое позволяет сопоставлять каждое вхождение .
и _
в каждом имени файла.
Для использования с rename
я бы предложил этот двухэтапный -подход:
rename 's/[._]//g' *.tif # remove any. and _ occurence
уступка:
Sep04170037tif Sep04170202tif Sep04170554tif Sep04170717tif Sep04170841tif
Тогда
rename 's/tif$/.tif/' *tif # replace ending tif by.tif
что приводит к
Sep04170037.tif Sep04170202.tif Sep04170554.tif Sep04170717.tif Sep04170841.tif
Не стесняйтесь сначала попробовать свои регулярные выражения в Интернете, например, на regex101 , который также научит вас многому о pcre:)
[РЕДАКТИРОВАТЬ] :если вы предпочитаете один -лайнер:
rename 's/[._]//g;s/tif$/.tif/' *.tif
Также будет избегать сопоставления неудачных соседних несвязанных файлов, которые, к сожалению, также заканчиваются на tif
во время второго шага.
apt purge python3.9
apt install -f -y
apt install python
решил эту проблему