在unix中检查长文本文件的问题

如果我跑

sudo pico /var/log/lighttpd/website/error.log 

我得到一个很长的文件,我看不到最后一行。 如果我运行:

 sudo tail -f /var/log/lighttpd/website/error.log | awk '{print $1 "--" $2}' 

我没有得到任何东西? 我究竟做错了什么 ?

另外,如何使用pico编辑器移动到特定行?

谢谢

你最好使用less量的寻呼机程序。 它试图不把整个文件加载到内存中,所以它适用于大文件。 less一些,你可以通过键入:123来移动到一个特定的行,其中123是你需要的行号。

至于尾巴 – 你有没有awk的东西? 或者用sudo tail -n 10 -f <log>

尾部的-f标志意味着“保持尾部进程正在运行,如果文件发生变化,则将它们拖到STDOUT ”。 基本上,这是一个积极地看日志文件的好方法。

我相信pipe道将等待第一个程序完成写入STDOUT之前,将输出到awk 。 由于-f标志,尾巴永远不会退出(直到你告诉它),所以没有任何事情可以通过awk进行传送。 所以没有打印。

尝试没有-f的第二个命令。 如果你正在寻找-ffunction,但也用awk来修改输出,我不知道答案是什么,而不是写一个自定义脚本来做到这一点…

tail -f只要文件还存在就不会退出(我也是这样想的)。 没有任何东西通过pipe道,直到第一个过程死亡。

如果你想要tail -f(即监视文件)的function,而仍然通过awkpipe道,请看watch "tail /var/log/lighttpd/website/error.log | awk '{print \$1 \"--\" \$2}'"