grep --line-buffered, 첫 번째 grep의 결과를 사용하여 동일한 버퍼를 검색할 수 있습니까?

grep --line-buffered, 첫 번째 grep의 결과를 사용하여 동일한 버퍼를 검색할 수 있습니까?

다음 형식의 로그 파일을 검색하고 있습니다.

<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 

관련 정보