簡體   English   中英

Unix sed和awk命令獲取記錄並顯示html表

[英]unix sed and awk commands get records and display html table

是Unix的新手,我嘗試使用sed和awk命令獲取用戶及其目錄詳細信息,並嘗試在html表中顯示它

我已經嘗試了以下代碼,它能夠打印表格的一列,我無法創建第二列和第三列,請告訴我在第二列和第三列中打印記錄的可能方法

vars=`cat /etc/passwd | sed -e "s/:/\t/g" | awk '{print $1}'`
echo '<table style="width:100%" border="2px"><tr><th>username</th><th>column1</th><th>column2</th>' >> demo.html
for variable in $vars
 do
 echo "<tr><td>$variable</td></tr>" >> demo.html
done
 echo "</table>" >> demo.html

假設只有第一列可能包含空格,而第二列和第三列將不包含空格,那么這是編寫這種腳本的一種方法:

{
echo '<table style="width:100%" border="2px"><tr><th>username</th><th>column1</th><th>column2</th>'
awk -F: '{print $1; print $2, $3}' /etc/passwd | while read user
do
    read pass uid
    echo "<tr><td>$user</td><td>$pass</td><td>$uid</td></tr>"
done
echo "</table>" 
} | tee demo.html

這是使用awk一種簡單方法:

awk -F':' '
           function wrap(tag,x) {return "<"tag">"x"</"tag">"}
           function row(x)      {return wrap("tr",x)}
           function cell(x)     {return wrap("td",x)}

           BEGIN {
               print "<table style=\"width:100%\" border=\"2px\">"
               print row(cell("user_name")  cell("home_dir"))
           }
           {
               print row(cell($1) cell($6) )
           }
           END{
               print "</table>"
           }
          ' /etc/passwd

將輸出(記錄很少):

 <table style="width:100%" border="2px"> <tr><td>user_name</td><td>home_dir</td></tr> <tr><td>root</td><td>/root</td></tr> <tr><td>daemon</td><td>/usr/sbin</td></tr> <tr><td>bin</td><td>/bin</td></tr> <tr><td>sys</td><td>/dev</td></tr> <tr><td>sync</td><td>/bin</td></tr> <tr><td>akshay</td><td>/home/akshay</td></tr> <tr><td>mysql</td><td>/nonexistent</td></tr> <tr><td>gdm</td><td>/var/lib/gdm3</td></tr> </table> 

這將生成一個表格,如下圖所示:

 awk -F':' 'BEGIN{print "<table border=1    cellpadding=1  cellspacing=0    bordercolor=BLACK ><tr><td>User Name</td><td>Default Shell</td></tr>"}{ print "<tr><td>"$1"</td><td>"$(NF)"</td></tr>"} END { print "</table>" } ' /etc/passwd

產量

table_sample

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM