sed: что делает “/” средний?

awk regexps расширяются regexps в то время как grepбез -E основной regexp. С расширенным regexp:

awk '/name=|age=|class=|marks=/{nr[NR]; nr[NR+2]}; NR in nr'

Обратите внимание, что стандартные основные regexp не имеют оператора чередования, таким образом,

grep 'a\|b'

Не будет обычно работать в каждом grep (в то время как некоторым нравится GNU grep поддерживайте его как расширение).

grep -E 'a|b'
grep -e a -e b
grep 'a
b'

Будет работать в каждом grep все же.

3
16.06.2016, 04:14
3 ответа

/ Ссылки: /[119588] является адресным фильтром. Это означает: [119589] "Применяйте следующую операцию только к тем строкам, которые соответствуют фильтру"[119590] В данном случае фильтр является регексом; это также может быть номер строки, область строки, стартовый регекс и стоп-регексная комбинация и даже условие [119591] "каждая n-я строка"[119592] с некоторыми реализациями [119593]sed[119594].[119276].

6
27.01.2020, 21:09
[119287] Вы неправильно поняли. Ваша команда может быть интерпретирована как:

Таким образом, первые две [119617]/[119618] принадлежат к [119619]/pattern/[119620], значение которых совпадает с регексом:

3
27.01.2020, 21:09

единственное, чего я не понимаю, это "/ Ссылки": '

Ваши [119597]sed[119598] выражения [119599] фильтруют [119600] линии, соответствующие шаблону [119601] Ссылки:[119602] (с ведущим и ведущим пространством) и производят замену

Более того, использование [119603]-n[119604] подавляет автоматическую печать пространства шаблона и [119605]p[119606] печатает текущее пространство шаблона. Подводя итог, трубопровод [119607]-n[119608] будет печатать только строки, соответствующие [119609]-n[119606] на входе [119611]-n[119606] после [119612], выполняющего замену [119613]s/.*Связи: *//[119614].

Цитата из [119615] man sed[119616]:

2
27.01.2020, 21:09

Теги

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