Abrir vários arquivos CSVs em HTML - RESOLVIDO

13. Re: Abrir vários arquivos CSVs em HTML - RESOLVIDO

Alexandre Furlan
alexfurlan

(usa Ubuntu)

Enviado em 28/08/2015 - 10:50h

Opa!

Acho que é isso:

Valeu parceiro. Vou testar na segunda, pois hoje estou atolado até o pescoço. Não tem como eu testar no final de semana, tendo em vista não ter acesso à rede corporativa lá de casa.
Abração e um ótimo final de semana.
Obs.: Segunda eu posto o resultado aqui.


  


14. Re: Abrir vários arquivos CSVs em HTML - RESOLVIDO

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 28/08/2015 - 11:43h

É noix!

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


15. Re: Abrir vários arquivos CSVs em HTML - RESOLVIDO

Alexandre Furlan
alexfurlan

(usa Ubuntu)

Enviado em 28/08/2015 - 15:27h

tonyhts escreveu:

Opa!

Acho que é isso:
#!/bin/bash

# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# *
# Script criado para resolver o problema do user @Alexfurlan do VOL. *
# *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# *
# Lista os arquivos .csv na pasta em que for executado, *
# trata, cria a coluna porcentagem e bloco de estatísticas *
# e gera um arquivo HTML. *
# *
# Uso: *
# ./script.sh *
# *
# Ao executar, as informaçoes do cabeçalho serão solicitadas: *
# *
# Nome da empresa: Se o nome da empresa não for informado, *
# assumira o nome padrão (Viva o Linux Co.). *
# *
# Local do Servidor: Se o Local do servidor não for informado, *
# assumirá o local extraido da coluna 1, linha 2 do ultimo *
# arquivo csv listado na pasta. *
# *
# Data de Referência : Se a data de referencia não for informada, *
# o valor sera a data da execução do script. *
# *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

# Variáveis

# Arquivo Final (HTML)
final="lista_server_$(date '+%d%m%Y').html"

# Nome da Empresa - (Se o nome da empresa não for informado, assumira o nome padrão (Viva o Linux Co.)
clear
echo -e "\nPor favor informe o nome da Empresa: "
read empresa
if [ -z "$empresa" ]
then
echo -e "\nATENÇÃO:: Empresa NÃO informada ! Assumindo nome padrão: Viva ao Linux Co."
sleep 1
empresa="Viva ao Linux Co."
fi

# Local do SERVIDOR - (Se o Local do servidor não for informado, assumirá o local extraido da coluna 1, linha 2 do ultimo arquivo csv listado na pasta)
echo -e "\nPor favor informe o Local do Servidor: "
read local_server
if [ -z "$local_server" ]
then
echo -e "\nATENÇÃO:: Local do servidor Não informado! Assumindo nome da unidade, extraído do ultimo arquivo CSV lido."
sleep 1
local_server=$(tail -1 $(ls *.csv | tail -1 ) | awk -F";" '{print$1}')
fi

# Data de Referencia - ( Se a data de referencia não for informada, o vlor sera a data da execução do script)
echo -e "\nPor favor informe a Data de Referencia: "
read data_ref
if [ -z "$data_ref" ]
then
echo -e "\nATENÇÃO:: Data NÃO informada ! Assumindo a data de hoje."
sleep 1
data_ref=$(date '+%d %m %Y')
fi

# Estatísticas
tmp="/tmp/arq_temp"

qtd_unid=$(wc -l $tmp | sed 's/[^0-9]//g')
qtd_loec=$(echo "$(awk '{print$3}' $tmp | tr "\n" "+" | sed 's/\+$//')" | bc)
qtd_loec_auto=$(echo "$(awk '{print$4}' $tmp | tr "\n" "+" | sed 's/\+$//')" | bc)

util_loec_auto_ac90=$(awk '{print$5}' $tmp | egrep '^(9|100)' | wc -l)
util_loec_auto_oc50=$(awk '{print$5}' $tmp | egrep '^[5-9]' | wc -l)
util_loec_auto_ab50=$(awk '{print$5}' $tmp | egrep '^([0-4]|50)' | wc -l)
util_loec_auto_none=$(awk '{print$5}' $tmp | egrep '^0%*' | wc -l)

# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

# Funções

monta_head () {
echo -e "<html>\n<head><meta charset="UTF-8">\n<title>Lista Servers</title>\n</head>\n<body>"
echo -e "<h2>Lista de Servidores</h2>\n\n"
echo -e "<h3>Empresa: $empresa</h3>"
echo -e "<h3>Local: $local_server</h3>"
echo -e "<h3>Data de Referência: $data_ref</h3>\n\n\n"
echo -e "<table border='1'>\n<tr><th> UNIDADE </th><th>IP SERVIDOR</th><th>TOTAL LOECs</th><th>TOTAL LA</th><th>%</th>"
}

monta_body () {
for arq in $(ls *.csv)
do echo -e "$(tail -1 $arq | sed 's/\s//g;s/;/<\/td><td>/g;s/^/<tr><td>/g;s/$/<\/td>/g')<td>$(tail -1 $arq |awk -F';' '{if ($4 =="0") print "0";else print$4/$3*100}' | sed -r 's/[0-9]{2}$/%/')</td></tr>"
done
}

monta_footer () {
echo -e "</table>\n\n <p> $(ls *.csv | wc -l) arquivos CSVs foram tratados com sucesso!\n\n</p>"

egrep '^<tr><td>' $final | sed 's/[<a-z\/>]/ /g' | tr -s " " " " > $tmp
echo -e "<h3> Estatísticas</h3>\n\n"
echo -e "<p>Qtde LOEC Automática: $qtd_loec_auto</p>"
echo -e "<p>Qtde LOECs : $qtd_loec\n\n\n</p>"
echo -e "<p>Unidades acima de 90% de utilização de LOEC Automática: $util_loec_auto_ac90</p>"
echo -e "<p>Unidades acima de 50% de utilização de LOEC Automática: $util_loec_auto_oc50</p>"
echo -e "<p>Unidades abaixo de 50% de utilização de LOEC Automática: $util_loec_auto_ab50</p>"
echo -e "<p>Unidades com 0% de utilização de LOEC Automática: $util_loec_auto_none</p>"

echo -e "</body>\n</hmtl>"
}

# Construindo HTML
monta_head > $final
monta_body >> $final
monta_footer >> $final

if [ $? -eq 0 ]
then
echo -e "\nScript executado com sucesso!\n\nForam tratados $(ls *.csv | wc -l) arquivos CSVs.\n\nO arquivo HTML foi gerado em "$(pwd)"/$final\n\n"
echo -e "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"
echo -e "* Para acessar o arquivo HTML gerado via terminal, execute: *"
echo -e "* firefox $final *"
echo -e "* *"
echo -e "* Obrigado ! *"
echo -e "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\n"
else
echo -e " \n\n A operação NÃO foi realizada corretamente"
fi



abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---

tonyhts, boa tarde.
Acabou que sobrou um tempinho. Então, fiz o teste hoje mesmo. Afinal: para que deixar para depois, o que pode ser feito agora?

O script está quase perfeito.
A coluna % calcula tudo certo, mas quando o retorno era para ser 100%, ele retorna 1%.
A Estatística não retornou nada.

Estava lendo o seu script. Achei bastante complicado a parte das contas. Não entendi nada.

Abraços.





16. Re: Abrir vários arquivos CSVs em HTML - RESOLVIDO

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 28/08/2015 - 16:55h

Perdoe-me !
Havia colado a versão errada ;(

Segue a correta, já com a correção da porcentagem quando for 100%
#!/bin/bash

# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# *
# Script criado para resolver o problema do user @Alexfurlan do VOL. *
# *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# *
# Lista os arquivos .csv na pasta em que for executado, *
# trata, cria a coluna porcentagem e bloco de estatísticas *
# e gera um arquivo HTML. *
# *
# Uso: *
# ./script.sh *
# *
# Ao executar, as informaçoes do cabeçalho serão solicitadas: *
# *
# Nome da empresa: Se o nome da empresa não for informado, *
# assumira o nome padrão (Viva o Linux Co.). *
# *
# Local do Servidor: Se o Local do servidor não for informado, *
# assumirá o local extraido da coluna 1, linha 2 do ultimo *
# arquivo csv listado na pasta. *
# *
# Data de Referência : Se a data de referencia não for informada, *
# o valor sera a data da execução do script. *
# *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

# Variáveis

# Arquivo Final (HTML)
final="lista_server_$(date '+%d%m%Y').html"

# Nome da Empresa - (Se o nome da empresa não for informado, assumira o nome padrão (Viva o Linux Co.)
clear
echo -e "\nPor favor informe o nome da Empresa: "
read empresa
if [ -z "$empresa" ]
then
echo -e "\nATENÇÃO:: Empresa NÃO informada ! Assumindo nome padrão: Viva ao Linux Co."
sleep 1
empresa="Viva ao Linux Co."
fi

# Local do SERVIDOR - (Se o Local do servidor não for informado, assumirá o local extraido da coluna 1, linha 2 do ultimo arquivo csv listado na pasta)
echo -e "\nPor favor informe o Local do Servidor: "
read local_server
if [ -z "$local_server" ]
then
echo -e "\nATENÇÃO:: Local do servidor Não informado! Assumindo nome da unidade, extraído do ultimo arquivo csv listado na pasta."
sleep 1
local_server=$(tail -1 $(ls *.csv | tail -1 ) | awk -F";" '{print$1}')
fi

# Data de Referencia - ( Se a data de referencia não for informada, o vlor sera a data da execução do script)
echo -e "\nPor favor informe a Data de Referencia: "
read data_ref
if [ -z "$data_ref" ]
then
echo -e "\nATENÇÃO:: Data NÃO informada ! Assumindo a data de hoje."
sleep 1
data_ref=$(date '+%d %m %Y')
fi

tmp="/tmp/arq_temp"

# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

# Funções

monta_head () {
echo -e "<html>\n<head><meta charset="UTF-8">\n<title>Lista Servers</title>\n</head>\n<body>"
echo -e "<h2>Lista de Servidores</h2>\n\n"
echo -e "<h3>Empresa: $empresa</h3>"
echo -e "<h3>Local: $local_server</h3>"
echo -e "<h3>Data de Referência: $data_ref</h3>\n\n\n"
echo -e "<table border='1'>\n<tr><th> UNIDADE </th><th>IP SERVIDOR</th><th>TOTAL LOECs</th><th>TOTAL LA</th><th>%</th>"
}

monta_body () {
for arq in $(ls *.csv)
do echo -e "$(tail -1 $arq | sed 's/\s//g;s/;/<\/td><td>/g;s/^/<tr><td>/g;s/$/<\/td>/g')<td>$(tail -1 $arq |awk -F';' '{if ($4 =="0") print "0";else print$4/$3*100}' | sed -r '/\.[0-9]{4}$/ s/[0-9]{2}$//;s/$/%/')</td></tr>"
done
}

monta_footer () {
echo -e "</table>\n\n <p> $(ls *.csv | wc -l) arquivos CSVs foram tratados com sucesso!\n\n</p>"

# Estatísticas

egrep '^<tr><td>' $final | sed 's/[<a-z\/>]/ /g' | tr -s " " " " > $tmp
qtd_unid=$(wc -l $tmp | sed 's/[^0-9]//g')
qtd_loec=$(echo "$(awk '{print$3}' $tmp | tr "\n" "+" | sed 's/\+$//')" | bc)
qtd_loec_auto=$(echo "$(awk '{print$4}' $tmp | tr "\n" "+" | sed 's/\+$//')" | bc)
util_loec_auto_ac90=$(awk '{print$5}' $tmp | egrep '^(9|100)' | wc -l)
util_loec_auto_oc50=$(awk '{print$5}' $tmp | egrep '^[5-9]' | wc -l)
util_loec_auto_ab50=$(awk '{print$5}' $tmp | egrep '^([0-4]|50)' | wc -l)
util_loec_auto_none=$(awk '{print$5}' $tmp | egrep '^0%*' | wc -l)

echo -e "<h3> Estatísticas</h3>\n\n"
echo -e "<p>Qtde LOEC Automática: $qtd_loec_auto</p>"
echo -e "<p>Qtde LOECs : $qtd_loec\n\n\n</p>"
echo -e "<p>Unidades acima de 90% de utilização de LOEC Automática: $util_loec_auto_ac90</p>"
echo -e "<p>Unidades acima de 50% de utilização de LOEC Automática: $util_loec_auto_oc50</p>"
echo -e "<p>Unidades abaixo de 50% de utilização de LOEC Automática: $util_loec_auto_ab50</p>"
echo -e "<p>Unidades com 0% de utilização de LOEC Automática: $util_loec_auto_none</p>"

echo -e "</body>\n</hmtl>"
}

# Construindo HTML
monta_head > $final
monta_body >> $final
monta_footer >> $final

if [ $? -eq 0 ]
then
echo -e "\nScript executado com sucesso!\n\nForam tratados $(ls *.csv | wc -l) arquivos CSVs.\n\nO arquivo HTML foi gerado em "$(pwd)"/$final\n\n"
echo -e "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"
echo -e "* Para acessar o arquivo HTML gerado via terminal, execute: *"
echo -e "* firefox $final *"
echo -e "* *"
echo -e "* Obrigado ! *"
echo -e "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\n"
else
echo -e " \n\n A operação NÃO foi realizada corretamente"
fi


abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


17. Re: Abrir vários arquivos CSVs em HTML - RESOLVIDO

Alexandre Furlan
alexfurlan

(usa Ubuntu)

Enviado em 31/08/2015 - 09:20h

tonyhts escreveu:

Perdoe-me !
Havia colado a versão errada ;(

Tranquilo. Foi de grande ajuda. Muito obrigado pela força.
Como eu marco o tópico como resolvido?
Abraços, parceiro.






18. Re: Abrir vários arquivos CSVs em HTML - RESOLVIDO

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 31/08/2015 - 23:58h

Opa. Que bom!

para marcar como resolvido, clique em resolvido (canto i ferior direito de qulquer post).

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts