2

Я хочу, чтобы каждая строка соответствовала шаблону:

  • что-то
  • где-то
  • где-то

из /data/rawlog.txt

Я пытаюсь эту команду, но не удалось:

grep -e "[something|someplace|somewhere]" /data/rawlog.txt

Кто-нибудь знает, что идет не так?

1 ответ1

7

Во-первых, вам не нужны скобки. Во-вторых, вам нужны расширенные регулярные выражения или экранирование каналов. Одно из этого должно работать:

egrep -e "something|someplace|somewhere" /data/rawlog.txt
grep -e "something\|someplace\|somewhere" /data/rawlog.txt

Если вы хотите разместить что-то вне вилки, не забудьте сгруппировать это. Например, если вы хотите, чтобы эти шаблоны появлялись только в конце строки:

egrep -e "(something|someplace|somewhere)$" /data/rawlog.txt

Обратите внимание, что скобки также должны быть egrep или экранировать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .