2

Если бы я хотел запустить mv arg1 $(sed arg1 's/regex/replace/') есть ли лучший способ сделать это, чем заново вставить имя файла в команду sed?

1 ответ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 - это оболочка, а не регулярное выражение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .