我有一个正在实施的场景
仅获取找到的匹配关键字的最后一次出现
例如 :我有一个名为 demo.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'