Я изучаю, как использовать утилиту командной строки для rename
Unix (см., Например, https://www.tecmint.com/rename-multiple-files-in-linux/).
В руководстве по rename
говорится, что вы можете комбинировать несколько правил переименования (обратите внимание, это краткий обзор использования, где я убираю другие аргументы для ясности):
rename [ -e|-E perlexpr]*|perlexpr [ files ]
Я пытаюсь сделать это на следующем искусственном примере. У меня есть каталог с файлами:
$ ls
01.php 02.php 03.php
Я применяю два преобразования, используя один вызов rename
:
rename -n -v -e "s/\.php$/\.htm/" "y/a-z/A-Z/" *
Ожидаемое поведение таково:
$ ls
01.HTM 02.HTM 03.HTM
Тем не менее, вывод rename
rename(01.php, 01.htm)
rename(02.php, 02.htm)
rename(03.php, 03.htm)
то есть второе преобразование (строчные буквы в верхние) не применяется.
Как объединить несколько выражений вместе?