Не пытайтесь проанализировать find
вывод за исключением последнего средства. Важно понять, что в файловых системах Unix, имена файлов не являются строками (распространенное заблуждение), а скорее двоичные блобы, которые могут содержать любой символ кроме /
и нулевой символ. Парсинг имен файлов безопасно и правильно является действительно болью, что 99% времени, Вы просто захотите постараться не делать его в целом (просто выглядят на как волосатым sed
выражение в ответе @yarek и даже который не покрывает все случаи). К счастью в этом случае существует намного более простой подход:
find . -name '*(1).m4a' -execdir sh -c \
'for arg; do mv "$arg" "${arg%(1).m4a}".m4a; done' _ {} \+
можно попробовать http://posterazor.sourceforge.net
Я только преобразовываю изображение. Я не знаю, преобразовывают ли текст, возможно.