Действительно ли это - хорошая идея добавить сценарий оболочки с жемчугом просто для использования regex?

Это находится не обязательно в его собственном пакете, и это находится не обязательно в названном пакете xfontsel. Этот сайт приводит меня полагать, что это - часть xorg-x11-utils, так установка, которая должна работать

3
19.04.2012, 02:51
1 ответ

Я не понимаю, почему Ваш отрывок жемчуга записан этот путь. Вы могли записать regexp непосредственно в сценарии:

perl -e 'while (my $line = <STDIN>) {if ($line =~ /my regex/) {print $line}}'

который позволяет Вам использовать в своих интересах -n опция (в качестве награды, Вы получаете надлежащее сообщение об ошибке в случае, если существует входная ошибка). Далее использование идиом жемчуга:

perl -ne 'print if /my regex/'

Sed имеет обратные ссылки, но расширенные regexes perl более мощны, существуют вещи, которые Вы не можете сделать с sed (sed, даже не имеет полного regexes: чередование \| не стандартная функция, хотя много реализаций имеют ее).

Большая часть того, что можно сделать с традиционными инструментами, можно сделать легко в жемчуге. Например, если Вы хотите пропустить первые K-1 байты, можно записать

perl -ne 'BEGIN {read ARGV, "", 42-1}; …'

Если Вы хотите мобильность, много задач обработки текста может быть сделано в awk, но awk не имеет обратных ссылок вообще, так извлечение текста от строки может быть неуклюжим.

3
27.01.2020, 21:24
  • 1
    n был тем, что я искал, поскольку он делает эту работу как grep :) использование $ARGV [0], был то, так, чтобы это можно было назвать из сценария кратким способом (избегающий дополнительного '"$var'" Escape). Кажется, что флаг-n повредит ARGV из канала, таким образом, Escape должны будут сделать! –  jorb 20.04.2012, 02:38

Теги

Похожие вопросы