私のファイルには、最初の行がヘッダーである次のカンマ区切りデータが含まれています。
ファイルデータ:
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
コード出力:
次の出力タイトルが必要です。
答え1
努力する
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
(?) テーブルヘッダを表し、目的のタスクを実行するように設計されています。 (必要なすべてのセルで使用できますが)
答え2
データはコンマで区切られますが、,
デフォルトawk
では入力テキストのフィールド区切り文字としてスペースが使用されます。
試してみてください
awk -F, 'BEGIN{print "<table>"} {print "<tr>";for(i=1;i<=NF;i++)print "<td>" $i"</td>";print "</tr>"} END{print "</table>"}' File.txt
この-F
パラメーターは、データ入力の区切り記号(の列区切り文字File.txt
)を提供します。