在bash中搜索文件以获取正则表达式的最后一个匹配项

时间:2015-04-02 16:02:34

标签: regex bash shell

我在bash上很糟糕,需要编写一个脚本来查找.log文件中regexp的最后一个实例。并返回整行。这可能与sed或我必须使用awk吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

只需找到与grep匹配的所有匹配项,然后使用tail获取最后一个匹配项:

grep regex file | tail -n 1 

答案 1 :(得分:1)

这样做:

sed -nr '/YOUR_REGEXP/h; ${g;p}' INPUT_FILE

grep将通过存储绝对无用的数据来消耗你的内存:你不需要除了last之外的所有匹配但是它将被存储在内存中,但只有最后的出现/匹配将由tail -n1打印。 是的,GNU sed比grep快,支持更复杂的regexp。