Допустим, у вас есть каталог с сотнями файлов с неправильными именами файлов, и вы хотите заменить каждое имя файла, содержащее тестовое задание с тычок, (это надуманный пример). Мы можем легко сделать это с помощью команды «for» в bash, в сочетании с немного боссом. Сегодня мы узнаем, как заменить текст в переменной в цикле for.
Команда «for» работает следующим образом:
for var in ;do $var;done
Вы можете заменить
В этом случае обработка переменной bash делает ее еще более интересной. Вместо того, чтобы просто делать что-то вроде «mv $ var», мы можем заменить текст в имени файла, используя этот синтаксис:
${var/originaltext/replacetext}
Итак, если мы запустим эту команду в нашем каталоге:
for f in *;do mv $f ${f/test/prod};done
Для каждого файла, совпадающего с *, bash выполнит команду, подобную этой:
mv test.config prod.config
Я обнаружил, что знание оболочки неоценимо при администрировании серверов или просто для управления коллекцией файлов, и избавило меня от часов, которые в противном случае были бы ручной работой.
И да, я понимаю, что существует ряд инструментов, которые могут выполнять переименование нескольких файлов.