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
이번에도 아무런 결과가 나오지 않습니다.
이 파일을 추적하고 필터링하고 마지막 비트를 추출하는 데 사용할 수 있는 라이너가 있습니까?