Stop Tail, когда определенная строка найдена в файле журнала

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

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

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

2 ответа

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

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

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

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

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

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

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

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

Другие вопросы по тегам