Grep和paginate日志文件

时间:2014-01-21 18:18:53

标签: linux logging sed grep tail

我尝试在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");

我想在文件中执行grep,然后分页找到行。 我对linux命令和管道知之甚少,所以我不知道如何修改它以使其工作。有人可以帮忙吗?如果您可以帮助修改wc -l命令以仅计算匹配的行,那么也会很好。感谢。

1 个答案:

答案 0 :(得分:0)

在这种情况下,awk肯定更好(一次性完成)

尝试

$text = shell_exec("grep 'searchstring' $fp | sed -n \"${from},{$to} p\" | tail -r");

允许shell用$和$替换它们的值(简单的引用取而代之)