2014-09-05 42 views
0

我有一個很大的1GB錯誤日誌,名爲「error_log」,我只需要從某天讀取錯誤。我有這個簡單的PHP代碼來實現這一點:某天讀取錯誤日誌

<?php 

$lines = `cat error_log | grep '[27-Aug'`; 
echo $lines; 

?> 

由於某些原因,當我嘗試這個代碼輸出什麼。我想讀取8月27日記錄的錯誤,因此我使用[27-Aug',因爲它是每個條目的前綴。

上面的代碼有什麼問題嗎?我敢肯定文件路徑,因爲我試過head命令,它運行良好。

回答

1

這是錯誤的

grep '[27-Aug' 

嘗試

grep '\[27-Aug' 

[是一個特殊字符,需要轉義

但改變行:

lines=$(grep '\[27-Aug' error_log) 

待辦事項而不是cat將文件寫入可以自行讀取的程序。
避免使用舊的和過時的背景,使用像這樣的圓括號var=$(code)

+0

在行變量之前是否有缺少'$'? – 2014-09-05 19:23:52

+0

現在得到這個錯誤:PHP解析錯誤:語法錯誤,意外的'(',期待變量(T_VARIABLE)或'$'在 – 2014-09-05 19:28:33

+0

@MichaelSamuel php是不是我的實力。嘗試添加'$' – Jotne 2014-09-05 19:29:59