Вот только решение для раковины для трех случаев, которые у вас есть в вашем вопросе:
for f in *.png.png ; do mv -i "${f}" "${f%.png}" ; done
for f in *.jpeg.jpg ; do mv -i "${f}" "${f%.jpeg.jpg}.jpg" ; done
for f in *.JPEG ; do mv -i "${f}" "${f%.JPEG}.jpg" ; done
введите его в каталог, где файлы должны быть переименованы.
Если вам нравится обобщить этот тип решений в виде сценария замены суффикса, вы можете сделать:
#!/bin/sh
from=${1:?} to=${2:?}
for f in *${from} ; do mv -i "${f}" "${f%${from}}${to}" ; done
и вызовите этот скрипт с двумя параметрами, суффикс для замены, а также новый суффикс.
То, что у вас есть, очень близко, просто замените grep -i
на egrep
, т.е.
egrep ^[qwrtypsdfghjklzxcvbnm]*[aeodsui]+[qwrtypsdfghjklzxcvbnm]$ [filename]
подойдет.