![마지막으로 일치하는 키워드를 얻으려면 어떻게 해야 합니까? Linux |](https://linux55.com/image/164041/%EB%A7%88%EC%A7%80%EB%A7%89%EC%9C%BC%EB%A1%9C%20%EC%9D%BC%EC%B9%98%ED%95%98%EB%8A%94%20%ED%82%A4%EC%9B%8C%EB%93%9C%EB%A5%BC%20%EC%96%BB%EC%9C%BC%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20Linux%20%7C.png)
구현 중인 시나리오가 있습니다.
발견된 일치 키워드의 마지막 항목만 가져오기
예를 들어:많은 데이터가 포함된 데모.txt라는 파일이 있습니다.
egrep -in '<NAME ="ABC_DEF_GHI">' /d/demo.txt
Line Number 11 : <NAME ="ABC_DEF_GHI">
Line Number 12 : <NAME ="ABC_DEF_GHI">
Line Number 34 : <NAME ="ABC_DEF_GHI">
Line Number 46 : <NAME ="ABC_DEF_GHI">
Line Number 67 : <NAME ="ABC_DEF_GHI">
Line Number 78 : <NAME ="ABC_DEF_GHI">
하지만 일치하는 키워드의 마지막 항목을 얻고 싶습니다.<NAME ="ABC_DEF_GHI">
출력은 다음과 같아야합니다.
Line Number 78 : <NAME ="ABC_DEF_GHI"> -> as its last occurrence
작동하지 않는 다음 코드를 시도했습니다.
tail -f -n 1 /d/demo.txt | egrep -in '<NAME ="ABC_DEF_GHI">'
답변1
tail
다음 일을 해라grep
egrep -in '<NAME ="ABC_DEF_GHI">' /d/demo.txt | tail -1
확장 정규식보다는 리터럴 문자열을 검색할 때 fgrep
.egrep
fgrep -in '<NAME ="ABC_DEF_GHI">' /d/demo.txt | tail -1
답변2
전체 파일에서 실행되는 것을 방지하려면 grep
파일을 반대로 하고 첫 번째 발생 위치를 가져옵니다.
tac file | egrep -in -m1 'pattern'