문자열 추적 및 관찰, 필터링 및 추출

문자열 추적 및 관찰, 필터링 및 추출

test.log계속 추가되는 more 행이라는 파일이 있다고 가정해 보겠습니다 .

one|two|apple|four|foo1
one|two|pear|four|foo2
one|two|apple|four|foo3
one|two|peach|four|foo4

나는 그것을 추적하고 싶지만 사과 행에만 관심이 있고 마지막 파이프 다음의 문자열만 보고 싶습니다.

사과별로 필터링하려면 다음을 사용할 수 있습니다.

tail -f test.log | grep apple

이 출력은 다음과 같습니다.

one|two|apple|four|foo1
one|two|apple|four|foo3

이제 마지막 파이프 다음에 문자열을 얻으려면 다음을 사용할 수 있다고 생각합니다.

tail -f test.log | grep apple | awk -F '|' '{print $(NF)}'

그러나 이것은 아무것도 출력하지 않습니다.

tail에서 옵션을 제거 하면 -f작동하지만 로그 파일을 볼 수 없습니다.

문제는 awk가 중단된다는 것입니다.이 답변에 설명된 대로. 거기에 설명된 솔루션이 나에게 적합하도록 만들 수 없습니다.

따라서 cut을 사용하는 것이 awk보다 쉬울 수도 있습니다. 특정 개수의 파이프가 있으므로 다음과 같이 할 수 있습니다.

cat test.log | grep apple | cut -d\| -f 5

산출:

foo1
foo3

하지만 내가 볼 때 :

tail -f test.log | grep apple | cut -d\| -f5

이번에도 아무런 결과가 나오지 않습니다.

이 파일을 추적하고 필터링하고 마지막 비트를 추출하는 데 사용할 수 있는 라이너가 있습니까?

관련 정보