Solaris에서 하나의 결과가 나온 후 grep 중지

Solaris에서 하나의 결과가 나온 후 grep 중지

로그 파일에서 최신 값을 반환해야 합니다. 이 값은 항상 로그 파일의 끝 부분에 있다는 것을 알고 있으며 결과는 하나만 원합니다.

우분투에서는 다음을 사용하여 이 작업을 tac dhcp.log | grep macaddress -m 1수행했습니다 tail -r dhcp.log | grep macaddress. 전체 파일을 실행하지 않도록 첫 번째 결과 후에 grep을 종료할 수 있는 방법이 있습니까?

답변1

GNUgrep을 설치한 경우(예: /usr/bin/ggrepSolaris /opt/gnu/bin/grep11, /opt/sfw/bin/ggrepSolaris 10) 이 플래그가 있습니다 -m.

대신에 grep다음을 사용할 수 있습니다.sed

sed -n '/macaddress/{ p
q
}'

답변2

이는 다음을 기반으로 하는 대체 솔루션입니다 awk.

tail -r file | nawk '/macaddress/ {print;exit}'

관련 정보