grep: шаблон соответствия на особом положении

1 ответ

Я думаю, что вы ищете:

grep -E '^.{15} pattern'

Это будет нормально в большинстве случаев использования. Однако обратите внимание, что он не будет «соответствовать» только части шаблона , но все, что до него, также будет включено в сопоставление. Вы увидите это, выделив grep (если - цвет задан напрямую или был включен в псевдоним оболочки). Без цвета это повлияет на grep -o , который печатает только совпадающую часть. Например:

$ echo 'bla bla bla bla pattern' | grep -Eo '^.{15}( pattern)'
bla bla bla bla pattern

Чтобы избежать этого с помощью GNU grep, вы можете использовать выражение perl с поиском назад. Например:

$ echo 'bla bla bla bla pattern' | grep -Po '(?<=^.{15}) pattern'
 pattern

Это «соответствует» только части шаблона .

2
27.01.2020, 22:13

Теги

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