![](/img/trans.png)
[英]How can I extract data from HTML table cells using sed, awk, or grep?
[英]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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.