使用grep命令模拟tail -1命令

时间:2014-09-09 06:41:53

标签: regex unix grep command tail

我想使用tail -1模拟grep命令,即我想使用grep打印文件的最后一行。可以使用sedawk轻松完成。但我找不到grep

的任何选项

1 个答案:

答案 0 :(得分:1)

为什么你要这么做呢?正如所有人都建议的那样,有更好的工具可以完成这项工作。

这是您想要的解决方案:

grep "^" -n filename | grep -Po "(?<=^$(grep -c "^" filename):)(.*)" 

诀窍是显示所有带行号的行(-n选项) 然后匹配文件行数之前的行 grep -c "^" filename部分给出了行数 -P允许使用PCRE,因为需要积极的后视匹配。

如果您无法访问-P(我对此表示怀疑),请使用其他过滤方式,如下所示,但对于包含:字符的行不起作用:

grep "^" -n filename | grep "^$(grep -c "^" filename):" | grep -o "[^:]*$"          

这篇文章背后的原因是为了证明这只能使用grep来完成。

道德:! (强烈推荐)