Linux 不用 tail 命令而用 cat 命令读取文件的后 100 行

lb563 · 2012年05月19日 · 最后由 lb563 回复于 2012年05月20日 · 38405 次阅读

环境: Rails + Passenger + Nginx

需求: 现在需要在页面上显示日志

实现:

1: 用系统的 tail -100f log_file.log ,实现过程中发现 Rails 执行命令时就停在那里了. (因为 tail 命令需要用 ctrl+c 才停下来。因些在项目中用"tail"命令来实现不通了.)

2: 现在想用cat log_file.log来实现。实时的刷新日志页面.但是"cat"命令会将整个文件给 读出来,这是我不希望的。我只想读取文件后 100 行。

求助下大家有没有什么方法能达到这种效果呢?

简单的来说:使用" cat "命令来读取文件的后 100 行

tail -n 100 /xxx

#1 楼 @alvin2ye 是的这样可以。但是我想用 cat 命令而不是 tail 命令。

cat 好像实现不了你说的吧

cat [-AbeEnstTuv] 参数里面没有能实现读取 100 行这个要求的, 如果不用 tail/head的话,可以 tac file | sed 100q file 先反转文件,输出前 100 行之后退出 不过这样就会先输出最后一行,还得往回倒找着看。

刚才看到个稍微好点的,不过都不能实现 tail -f 实时刷新功能

sed -e :a -e '$q;N;101,$D;ba' file 具体参考 Linux 中 sed 和 awk 的使用及其相关实例解析

#1 楼 @lb563 tail 不加 f 不会停

#5 楼 @alvin2ye 我加了 f 也不会停例如: tail -100f log.log 这会输出文件的后一百行。然后停在那里

需要 登录 后方可回复, 如果你还没有账号请 注册新账号