Итак, я провел исследование команды perl -pe
и знаю, что она берет записи из файла и создает из них выходные данные в виде другого файла. Теперь я немного запутался в том, как работает эта строка команды, поскольку она немного изменена, поэтому я не могу понять, какова именно роль perl pe
в ней. Вот команда:
cd /usr/kplushome/entities/Standalone/config/webaccess/WebaccessServer/etc
(PATH=/usr/ucb:$PATH; ./checkall.sh;) | perl -pe "s,^, ,g;"
Есть идеи, как это здесь работает?
Что еще больше сбивает с толку в приведенном выше заявлении, так это эта часть: "s,^, ,g;"
Любая помощь приветствуется. Дайте мне знать, если вам, ребята, нужна дополнительная информация. Спасибо!
-e
принимает всю программу (последовательность операторов), а не только выражение.s///
- это не регулярное выражение, это оператор подстановки (однако первая его часть - регулярное выражение:s/REGEX/REPLACEMENT/
). 05.11.2015/g
не имеет смысла с^
, и все это можно заменить на-e '$_ = " $_"'
(здесь должно быть больше пробелов, но, видимо, комментарии отфильтровывают их) или-e '$_ = " " x 10 . $_'
, минуя весь беспорядок с регулярными выражениями. (Ваш код на самом деле добавляет 11 пробелов, несмотря на то, что в тексте утверждается обратное.) 05.11.2015