Если бы я хотел запустить mv arg1 $(sed arg1 's/regex/replace/') есть ли лучший способ сделать это, чем заново вставить имя файла в команду sed?
1 ответ
1
Использование rename
Если у вас установлена утилита perl rename , используйте:
rename 's/regex/replace/' arg1
Для вашего удобства arg1 может быть глобусом.
В системах, подобных debian, rename perl устанавливается как часть пакета perl . Однако помните, что есть некоторые системы Linux, в которых установлена другая и несовместимая утилита, входящая в состав util-linux .
Использование bash
bash есть функция замены шаблонов, которую можно использовать для переименования файлов:
f=arg1; mv "$f" "${f//pattern/replace}"
Обратите внимание, что pattern - это оболочка, а не регулярное выражение.
