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" найден для первого попадания, программа автоматически закроется.