#regex #grep
#регулярное выражение #grep
Вопрос:
Я пытаюсь поместить каждую строку, содержащую ‘Error’ ‘ошибка’ ‘ОШИБКА’ из ‘syslog’ в файл ‘errormsg.txt » Поэтому я использую это
egrep -i '(?=error)' syslog | tee errormsg.txt
Но это не работает. Я получил замечание. Но я почти уверен, что мое регулярное выражение правильное
Комментарии:
1. Используйте perl-regexp с
grep -iP
помощью .2. почему вам нужен поиск, а не просто
grep -i 'error'
? См. Также: Почему мое регулярное выражение работает в X, но не в Y?
Ответ №1:
попробуйте egrep -i '(.*error.*)' syslog | tee errormsg.txt
и вы всегда можете проверить свое регулярное выражение здесь
Комментарии:
1. Другое дело, если я хочу выделить ошибку, когда я добавляю —color перед -i , это также не работает. Почему?
2. @MIKUVOCALOID верно, кажется, что с этим связано какое-то странное поведение. кстати, я попробовал, и этот шаблон тоже работает и не испортил окраску
egrep --color -i 'error'
3.
egrep
устарело в пользуgrep -E
so, может быть, это ваша--color
проблема?