다음 형식의 로그 파일을 검색하고 있습니다.
<date> <connection from: ip> <new connection ID> <info>
<date> <connection ID> <info>
다음 명령을 사용하여 IP를 얻었지만 이 로그 파일에서 연결 ID를 검색하는 데 몇 분이 걸립니다.
tail -f logfile | grep ip --line-buffered
먼저 grep을 사용하여 IP를 찾은 다음 연결 ID를 기반으로 계속 검색할 수 있습니까?
연결 ID는 예측할 수 없으며 일치 후 로그의 다음 줄이 반드시 내 IP에 연결된 연결 ID는 아닙니다.
답변1
아니요.
당신이 할 때
tail -f logfile | grep "ip-address" --line-buffered
당신은 할 수 있습니다오직패턴과 일치하는 라인을 가져옵니다 ip-address
. 이후 파이프라인을 추가로 호출하면 grep
원본 로그 파일의 다른 줄을 볼 수 없습니다.
로그 파일의 몇 가지 예를 보지 않고는 (맹목적으로) 작동하는 솔루션을 찾기가 어렵습니다.
답변2
grep 명령에서 다양한 패턴을 사용할 수 있습니다. 예를 들어 "ip" 및 "connection id"가 포함된 두 줄을 grep할 수 있습니다.
tail -f logfile | grep -E 'ip|connection ID' --line-buffered