Perl в командной строке - примеры использования
Синтаксис запуска интерпретатора Perl:
perl [ключи] файл аргументы
Перед стартом Perl ищет скрипт (программу) в следующем порядке:
- В командной строке если указан ключ '-e'
- Содержимое файла указанного в командной строке. В первой строке можно указывать #!/usr/bin/perl для "автоматического" запуска скрипта.
- Стандартный ввод/вывод, если не указан файл или аргументы, содержащие имя файла. Для передачи аргументов скрипту из стандартного потока, имя файла в командной строке обозначается символом '-'.
В методах 1 и 2 Perl сканирует строки, начиная с первой, если не указан ключ '-x', в противном случае началом программы считается строка с символами '#!' в начале и содержащая слово 'perl'. Концом программы считается строка 'END'. В строке с '#!' можно указывать и ключи. Например '#!/bin/perl -d' для отладки программ.
После "обнаружения" скрипта Perl компилирует его целиком во внутреннее представление. Если обнаруживаются ошибки, то выполнение прекращается. Если ошибок нет, он выполняется. Если скрипт заканчивается без команд exit() или die(), то по умолчанию выполняется команда exit(0), обозначающая нормальное завершение программы.
Пример 1 Однострочные программы на Perl в командной строке для замены
Чтобы заменить foo на bar в нескольких файлах, выполните следующую команду Perl:
> perl -pi~ -e 's/foo/bar/' [files]
- ключ p означает, что подстановка выполняется в каждой строке указанного файла
- ключ i означает, что после подстановки результаты записываются обратно в файл
Как использовать Perl в командной строке для поиска выходных данных других программ?
Пример 2 Однострочные программы на Perl в командной строке для замены
Добавить к именам файлов, имена которых начинаются с цифр, расширение «bak»: Код для Unix дистрибутивов:
ls | perl -lne 'rename $_, "$_.bak" if /^\d+/'
Код для Windows с установленным интерпретатором Perl:
dir /b | perl -lne "rename $_, \"$_.bak\" if /^\d+/"
Пример 3 - Как использовать Perl в командной строке для поиска выходных данных других программ


