grep для определенного текста со специальным символом - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь выполнить поиск определенного текста в файле журнала, но не могу получить интересующий меня текст

echo "[27 May 2019 23:42:32,418] [Accept-Nsh-Proxy-Thread] [ERROR] [::] [Appserver] Too many open files (Accept failed)" >> sl3737474646464-config_console.log | tail -f sl3737474646464-config_console.log
cat sl3737474646464-config_console.log | grep -i "\[Appserver\] Too many open files \(Accept failed\)" 

Но не могу получить строку

Как получить тот текст, который я повторил?

1 Ответ

0 голосов
/ 28 мая 2019

grep принимает \( в качестве начала группы захвата.Просто отбросьте \ из ( и ).

$ echo "[27 May 2019 23:42:32,418] [Accept-Nsh-Proxy-Thread] [ERROR] [::] [Appserver] Too many open files (Accept failed)" | grep -i "\[Appserver\] Too many open files (Accept failed)"
[27 May 2019 23:42:32,418] [Accept-Nsh-Proxy-Thread] [ERROR] [::] [Appserver] Too many open files (Accept failed)

или используйте переключатель grep -F.Это заставляет grep анализировать аргумент буквально, поэтому вы можете забыть о экранировании:

$ echo "[27 May 2019 23:42:32,418] [Accept-Nsh-Proxy-Thread] [ERROR] [::] [Appserver] Too many open files (Accept failed)" | grep -i -F "[Appserver] Too many open files (Accept failed)"
[27 May 2019 23:42:32,418] [Accept-Nsh-Proxy-Thread] [ERROR] [::] [Appserver] Too many open files (Accept failed)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...