마지막으로 일치하는 키워드를 얻으려면 어떻게 해야 합니까? Linux |

마지막으로 일치하는 키워드를 얻으려면 어떻게 해야 합니까? Linux |

구현 중인 시나리오가 있습니다.

발견된 일치 키워드의 마지막 항목만 가져오기

예를 들어:많은 데이터가 포함된 데모.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'

관련 정보