【发布时间】:2014-02-11 12:23:10
【问题描述】:
我尝试在 Web 界面中显示日志文件。文件很大,所以我应该分页。我试过的最快的例子是在 php 中使用 linux 命令:
$fp = 'filename.txt';
$tmp = shell_exec("wc -l $fp"); // count lines
$from = 1;
$to = 100;
$text = shell_exec("sed -n '$from,{$to}p' $fp | tail -r");
它以相反的顺序给我从 1 到 100 的行,以便首先显示新的。 现在我想修改一个命令以允许搜索。本来打算用grep命令,但是我的修改不起作用:
$text = shell_exec("grep 'searchstring' $fp | sed -n '$from,{$to}p' | tail -r");
我想对 while 文件执行 grep,然后对找到的行进行分页。
我对linux命令和管道知之甚少,所以我不知道如何修改它以使其工作。有人可以帮忙吗?如果您可以帮助修改wc -l 命令以仅计算匹配行,那也将是一件好事。谢谢。
【问题讨论】:
-
如果您要接受用户输入,小心 shell 注入。我的意思是,如果
$fp = " -; rm -rf"?
标签: linux logging sed grep tail