MyTetra Share
Делитесь знаниями!
Чем заменить SED, чтобы работали выражения PCRE?
Время создания: 12.02.2021 08:58
Текстовые метки: linux, sed, perl, PCRE, регулярные выражения, потоковый редактор, преобразование текста
Раздел: Компьютер - Программирование - Регулярные выражения
Запись: xintrea/mytetra_syncro/master/base/16131095201shs6h82pk/text.html на raw.github.com

Регулярные выражения Perl (PCRE) являются одними из самых удобных. Они стандартизированы в самом языке и ожидаемо работают. В отличие от регулярных выражений POSIX и расширенных регулярных выражений Extended RE, в PCRE работают все необходимые метасимволы: \d - для цифр, \w - для слов и т.д.


Потоковый редактор sed, к сожалению, не работает со стандартом PCRE. Однако, в интерпретаторе языка Perl имеются опции, которые "превращают " perl в подобие редактора sed. Вместо команды sed можно использовать следующие команды.



Преобразование потока символов:


echo "batman" | perl -pe 's/bat/fish/g'


Преобразование содержимого файла и вывод результата в стандартный поток:


perl -pe 's/minus/plus/g' file.txt


Преобразование файла "на месте", то есть файл будет перезаписан результатом работы команды:


perl -pi -e 's/application/program/g' file.txt


Внимание! Нельзя объединять опции в одну: -pie. В этом случае perl будет считать регулярное выражение именем файла. Опции надо обязательно писать отдельно.



Этих трех команд достаточно для того, чтобы выполнять все те же действия над текстом, которые способен выполнить sed.


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования