Bash

如何在 HTML 表格中為 HEADERS 設置樣式

  • November 18, 2020

我的文件包含以下逗號分隔的數據,其中第一行是標題

檔案資料:

Name,Rollno,Course,Language,Subject,Awarded
Vilas,1,MBA,Account,MB,1
Ajay,2,MMM,Subject Matter,SU,2
Fedrick,33,MMS,Mct,SC,3

部分工作程式碼:

echo "<!DOCTYPE html>" >> n.html
echo "<html>" >> n.html
echo "<head>" >> n.html
echo "<style>" >> n.html
echo "table, th, td {" >> n.html
echo "border: 1px solid black;" >> n.html
echo "border-collapse: collapse;" >> n.html
echo "}" >> n.html
echo "</style>" >> n.html
echo "</head>" >> n.html
echo "<body>" >> n.html

awk -F, 'BEGIN{print "<table>"} {print "<tr>";for(i=1;i<=NF;i++)print "<td>" $i"</td>";print "</tr>"} END{print "</table>"}'  A.txt >> n.html

echo "</body>" >> n.html
echo "</html>" >> n.html

程式碼輸出:

上述程式碼的輸出

需要的標題如下輸出

輸出

嘗試

cat <<EOF > n.html
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th {background-color: yellow} 
</style>
</head>
<body>
EOF

awk -F, 'BEGIN{print "<table>";} 
   NR==1 { cell="th" ; }
  { print "<tr>";
    for(i=1;i<=NF;i++) printf "<%s>%s</%s>",cell,$i,cell ; 
    print "</tr>" ; cell="td" } 
  END{print "</table>"}' a.txt >> n.html

echo "</body>" >> n.html
echo "</html>" >> n.html

在哪裡

  • echo我在此處的文件中折疊了多個。
  • 我部署了一個多行awk程序以提高可讀性。
  • 我用printf
  • NR==1 { cell="th" ; }將設置cell為第一cell="th"可以在BEGIN子句中設置,cell每次列印後覆蓋)
  • th代表(?)表頭,旨在做你想做的事情(儘管你可以在任何你喜歡的單元格中使用它)

引用自:https://unix.stackexchange.com/questions/619875