Как к grep для канала |

Три примечания:

  • необходимо использовать текущий снимок мерзавца вместо alpha1, как alpha1 катастрофические отказы на запуске.
  • спросите относительно списка рассылки системного-журнала-ng, поскольку существует больше людей для ответа на вопрос, включая разработчиков системного-журнала-ng.
  • даже текущему мерзавцу нужен патч, посмотрите этот поток в списке рассылки: 3.4 на opensuse фабрике

14
20.08.2013, 02:36
4 ответа

Со стандартом grep синтаксис:

grep '[>|]'

или

grep -e '>' -e '|'

или

grep '>
|'

или

grep -E '>|\|'
10
27.01.2020, 19:51

При использовании GNU grep, можно сделать это с или оператор (|), которого нужно оставить (предшествовавший обратной косой чертой \). Таким образом для нахождения строк, содержащих или канал или большее - чем знак, включал их буквально с или оператор:

grep '|\|>' infile

Вывод:

|this is test
where is >
6
27.01.2020, 19:51
  • 1
    \| не стандарт BRE оператор, хотя это работает с GNU grep который является grep найденный в большинстве Операционных систем создается вокруг ядра Linux. –  Stéphane Chazelas 19.08.2013, 16:51
  • 2
    @StephaneChazelas: спасибо за указание на это, я не знал о нем. Я исправил текст. –  Thor 20.08.2013, 11:39
  • 3
    Да, оператор чередования является единственным реальным добавлением EREs по BREs, остальные (+, ?) быть синтаксическим сахаром для \{1,\} и \{0,1\}. (с другой стороны, EREs освобождают обратные ссылки (\(.\)\1) которые являются BRE только функция) –  Stéphane Chazelas 20.08.2013, 11:45

Используя выражение скобки для соответствия любому из требуемых символов:

grep "[|>]" infile

Вывод:

|this is test
where is >
1
27.01.2020, 19:51
  • 1
    Никакая потребность в также -i или -E здесь. –  Stéphane Chazelas 19.08.2013, 16:50
  • 2
    Это правда, подтвержденный. –  zagrimsan 20.08.2013, 05:47

Корректный способ выполнить его использует флаг-e, который указан POSIX. Например:

grep -e '>\||' infile
0
27.01.2020, 19:51
  • 1
    grep -e '>' -e '|' infile работы также. –  ott-- 19.08.2013, 14:28
  • 2
    -e указан POSIX, но не полезен здесь. \| не указан POSIX. –  Stéphane Chazelas 19.08.2013, 17:02

Теги

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