2013-07-25 42 views
0

我想從日誌文件中打印一些值,但echo只在一行中打印,我只是想在新行上打印每個結果。從greped文件回聲新行

#!/bin/sh 
echo "Content-type: text/html" 
echo "" 
echo "<html><head><title>Acessos do usuario" 
echo "</title></head><body>" 
echo "$(egrep 'kelsen.faria' /var/squid/logs/access_custom.log | awk '{ print "Data: " $1, "Usuario: " $9, "IP: " $4 }' | uniq)" 
echo "</body></html> 

謝謝!

+0

你爲什麼使用'echo'?只需調用命令'egrep ...'而不使用回聲,它將會換行。否則,只要你將調用包裝在'$(...)'中,你就無法做到。 – ahilsend

+0

這應該是一個魷魚CGI /腳本,我不是一個程序員,你可以看到。我發現在網頁上顯示這個輸出的方式是echo。 那麼,這種方式沒有辦法使用回聲? – kelsen

回答

0

沒有echo使用egrep命令:

#!/bin/sh 
echo "Content-type: text/html" 
echo "" 
echo "<html><head><title>Acessos do usuario" 
echo "</title></head><body>" 
egrep 'kelsen.faria' /var/squid/logs/access_custom.log | \ 
    awk '{ print "Data: " $1, "Usuario: " $9, "IP: " $4 }' | uniq 
echo "</body></html>" 

但appearantly您使用的是輸出HTML。換行符在那裏幫不了你。你必須使用一些html格式。該simlest的辦法是插入<br>標籤:

egrep 'kelsen.faria' /var/squid/logs/access_custom.log | \ 
    awk '{ print "Data: " $1, "Usuario: " $9, "IP: " $4, "<br>" }' | uniq 
+0

沒有「回聲」,瀏覽器頁面中不顯示任何內容。 – kelsen

+0

複製並粘貼錯誤:最後一個報價(「)丟失 – ahilsend

+0

它仍然只顯示一行中的所有內容,也許它需要在表格或類似的東西上格式化 – kelsen

0

我設法使其使用表顯示正確,我想我會繼續通過這樣的方式。

#!/bin/sh 
echo "Content-type: text/html" 
echo "" 
echo "<html><head><title>Acessos do usuario" 
echo "</title></head><body>" 
echo "<table border="1">" 
echo "<tr>" 
echo "<th>Data</th>" 
echo "<th>Usuario</th>" 
echo "<th>IP</th>" 
echo "</tr>" 
echo "<tr>" 
egrep 'kelsen.faria' /var/squid/logs/access_custom.log | \ 
    awk '{ print "<td>" $1, "</td>" "<td>" $9, "</td>" "<td>" $4 "</td>" "</tr>" 
}' | uniq 
echo "</table>" 
echo "</body></html>"