Три примечания:
Со стандартом grep
синтаксис:
grep '[>|]'
или
grep -e '>' -e '|'
или
grep '>
|'
или
grep -E '>|\|'
При использовании GNU grep, можно сделать это с или оператор (|
), которого нужно оставить (предшествовавший обратной косой чертой \
). Таким образом для нахождения строк, содержащих или канал или большее - чем знак, включал их буквально с или оператор:
grep '|\|>' infile
Вывод:
|this is test
where is >
\|
не стандарт BRE
оператор, хотя это работает с GNU grep
который является grep
найденный в большинстве Операционных систем создается вокруг ядра Linux.
– Stéphane Chazelas
19.08.2013, 16:51
+
, ?
) быть синтаксическим сахаром для \{1,\}
и \{0,1\}
. (с другой стороны, EREs освобождают обратные ссылки (\(.\)\1
) которые являются BRE только функция)
– Stéphane Chazelas
20.08.2013, 11:45
Используя выражение скобки для соответствия любому из требуемых символов:
grep "[|>]" infile
Вывод:
|this is test
where is >
Корректный способ выполнить его использует флаг-e, который указан POSIX. Например:
grep -e '>\||' infile