如何在未知文件行数时使用bat命令替代tail命令查看文件末尾内容?
如何在未知文件行数时使用bat命令替代tail命令查看文件末尾内容?
嗨,完全懂你的感受!bat的语法高亮确实比普通的tail舒服太多了,想把它当tail用但不知道文件行数时卡壳确实有点烦。给你分享几个实用的解决方案:
方法一:结合wc计算起始行
先通过wc -l获取文件的总行数,再算出要显示的起始行,传给bat的--line-range参数。比如要查看最后10行:batcat --line-range "$(($(wc -l < test.log) - 9)):" test.log这里
wc -l < test.log会输出文件的总行数,$(($总行数 - 9))就是最后10行的起始行号(比如文件有90行的话,90-9=81,81:就能显示最后10行)。就算文件行数少于10行,这个命令也不会出错,会直接显示全部内容。方法二:tail + bat 组合拳(最推荐)
其实不用这么麻烦,直接用tail先取出最后N行,再通过管道传给bat做语法高亮就行,还能指定高亮的语言类型:tail -n 10 test.log | batcat -l log这里
-l log是告诉bat按照日志文件的语法来高亮,如果你看的是其他类型的文件,比如Python脚本,就换成-l py,这样bat的优势完全保留,又不用操心行数问题,简直完美!方法三:用sed定位末尾行
也可以用sed直接提取最后N行,再传给bat:sed -n '$-9,$p' test.log | batcat -l log这里
$-9,$p表示从倒数第10行($-9)到最后一行($)的内容,同样不需要提前知道总行数,适合习惯用sed的朋友。
这几个方法都能解决你遇到的问题,个人最推荐第二种,简单直接还能最大化利用bat的高亮功能~
备注:内容来源于stack exchange,提问作者Ridwan Faiz
相关产品推荐
相关产品推荐

