Eu tenho um Medical.csv
arquivo com linhas do seguinte formato,
field: 'participation.type', displayName: 'program_type', type: 'String',path:'participation'
field: 'participation.program', displayName: 'program_name', type: 'String',path:'participation'
Eu quero escrever um script bash para convertê-lo para a tabela HTML com field
, displayName
e type
como cabeçalhos de forma dinâmica.
O Csv2HtmlConverter.sh
(Inspirado pela resposta na tabela Convert csv to html using ) é
echo "<table>" ;
while read INPUT ; do
echo "<tr><td>${INPUT//,/</td><td>}</td></tr>" ;
done < Medical.csv ;
echo "</table>"
O resultado para script acima é como abaixo o que é bom até certo ponto, mas gostaria de acrescentar <th>field</th>
, <th>displayName</th>
de forma dinâmica.
<table>
<tr><td>field: 'participation.type'</td><td> displayName: 'program_type'</td><td> type: 'String'</td><td>path:'participation'</td></tr>
<tr><td>field: 'participation.program'</td><td> displayName: 'program_name'</td><td> type: 'String'</td><td>path:'participation'</td></tr>
</table>
bash
text-processing
csv
html
prayagupd
fonte
fonte
Aqui está um script de shell que converterá um CSV em HTML:
http://giantdorks.org/alain/bash-and-awk-to-convert-delimited-data-csv-tsv-etc-to-html-tables/
Para abordar seu caso de uso especificamente.
Supondo o seguinte CSV original:
Você pode modificá-lo um pouco:
Para produzir a seguinte versão limpa:
A execução do script vinculado anteriormente no CSV original produzirá o seguinte HTML:
A execução no CSV limpo produziria:
fonte
sed 's/"//g' input
sed 's/^"//;s/"$//;s/","/,/g;' input.csv
fonte
Eu sei que é uma resposta tardia para esta pergunta, mas ajudará os usuários a pesquisar uma solução, a converter a saída do comando bash para o formato de tabela html. Existe um script fácil disponível para fazer isso em: https://sourceforge.net/projects/command-output-to-html-table/, que pode ser usado para converter qualquer saída ou arquivo de comando em um bom formato de tabela html.
fonte