Stop Tail, когда определенная строка найдена в файле журнала - PullRequest
0 голосов
/ 16 января 2019

Необходимо отслеживать файл журнала для определенной строки «Сервер работает по http». Когда эта строка найдена в файле журнала, мне нужно прекратить проверку и продолжить выполнение кода.

В настоящее время я использую "tail -f my-file.log | grep -q" Сервер работает по http ". Но это не похоже на работу. Команда по-прежнему работает.

tail -f my-file.log | grep -q "Server running at http"

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Вы должны указать, сколько совпадений вам нужно. Как вам нужно сначала нажать

tail -f server.log | grep -m 1 "mystring"

как только "mystring" найден для первого попадания, программа автоматически закроется.

0 голосов
/ 16 января 2019

Вы можете попробовать что-то вроде:

tail -f my-file.log | awk '/Server running at http/ { print | bash file_with_code}'

P.S. вместо другого файла это может быть функция в том же скрипте, разумеется, что в таком случае вам не нужно произносить bash перед функцией

Другое возможное решение может быть:

tail -f my-file.log | egrep -m 1 "Server running at http";echo "found the pattern"
...