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