Используя любой sed
, вы сохраняете %%TRACERT
строки в h
старом пространстве и d
удаляете их, в то время как к другим строкам добавляется место хранения с G
и заменяется новая строка (, вызванная добавив )запятую:
sed '/%%TRACERT/{h;d;};G;s/\n/,/' file.csv
попробуй
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
означает (? )Заголовок таблицы и предназначен для выполнения ваших задач (, хотя вы можете использовать его в любой понравившейся ячейке)Данные разделяются запятой ,
, но 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
).