Abrir vários arquivos CSVs em HTML - RESOLVIDO

1. Abrir vários arquivos CSVs em HTML - RESOLVIDO

Alexandre Furlan
alexfurlan

(usa Ubuntu)

Enviado em 26/08/2015 - 16:05h

Olá pessoal.
Estou com dificuldades na geração de um arquivo HTML (diário), onde o conteúdo é importado de vários arquivos (mais de 200) CSVs. Os arquivos CSVs são gerados por servidores que gerencio e remetidos para o meu micro. Este HTML tem que ser montado por Shell Script.
O formato final do HTML seria algo assim:
Cabeçalho
Nome da empresa
Local do Servidor
Data de referência: data

COLUNA 1 | COLUNA2 | COLUNA3 | COLUNA4 | COLUNA 5
Nome serv1 | IP serv1 | total dados | um item apenas | % col4 / col3
Nome serv2 | IP serv2 | total dados | um item apenas | % col4 / col3
E ASSIM POR DIANTE.


OBS.: As colunas 1, 2, 3 e quatro já existe no arquivo CSV. A coluna 5, teria que ser tratada. Os arquivos CSVs são gerados todos os dias 23:00 e enviados para o meu micro, portanto, teria um arquivo HTML a cada novo dia.

Não tenho a menor idéia de como começar o script. Por isto estou aqui.
Agradeço desde já.


  


2. Re: Abrir vários arquivos CSVs em HTML

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 26/08/2015 - 16:15h

olá,

1 - Pfvr, poste um exemplo real do arquivo ( dentro da tag code).
2 - Vc recebe esses arquivos CSVs como? email ou é criado numa determinada pasta no seu micro?
3 - Esse arquivo é sempre o mesmo formato ou os dados mudam de lugar/linha/coluna?


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 ---


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

Alexandre Furlan
alexfurlan

(usa Ubuntu)

Enviado em 26/08/2015 - 16:45h

tonyhts escreveu:

olá,

1 - Pfvr, poste um exemplo real do arquivo ( dentro da tag code).
2 - Vc recebe esses arquivos CSVs como? email ou é criado numa determinada pasta no seu micro?
3 - Esse arquivo é sempre o mesmo formato ou os dados mudam de lugar/linha/coluna?


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, seguem as respostas:
1)
UNIDADE;IP_SERVIDOR;TOTAL_LOECs;TOTAL_LA
CDD BH ;10.80.18.24;264;31


2) Dentro dos Servidores remotos, eu criei um script para enviar os arquivos CSVs para o meu micro.

3) Os arquivos CSVs são sempre do mesmo formato.



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

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 26/08/2015 - 16:57h

Ok.

Da onde vc extrai a localidade e empresa?


---
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 ---


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

Alexandre Furlan
alexfurlan

(usa Ubuntu)

Enviado em 26/08/2015 - 17:04h

tonyhts escreveu:

Ok.

Da onde vc extrai a localidade e empresa?


---
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 ---


Desculpa minha falha. O local do servidor é o primeiro campo do arquivo CSV (Unidade).




6. Re: Abrir vários arquivos CSVs em HTML

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 26/08/2015 - 20:57h

Opa.

Desculpe a demora. Tô numa correria maluca... rs

Acho que não entendi algumas coisas. São elas:

a) A localidade é o primeiro campo do csv, no caso : Unidade ( que tbm é o valor da coluna 1). É isso mesmo ?
b) O arquivo csv só tem 2 linhas mesmo?
c) De onde extrair o nome da empresa? Pode ser passado na execução do script?

Se a resposta for sim para as 3 perguntas, segue abaixo o script. Se não, me avise para mudarmos.


Supondo que não saiba como criar e executar um script, vou descrever passo a passo:

1) Crie o arquivo (vc pode chamar como quiser, mas aqui vamos chamá-lo de script.sh):
cd /caminho/da/pasta/csv
nano script.sh

2) Cole o conteúdo Abaixo:
#!/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 gera um arquivo HTML. *
# *
# Uso: O nome da empresa deve ser passado como parâmetro, *
# do contrário, o nome padrão será Viva ao Linux Co. *
# Caso deseje usar um nome de empresa com espaço, *
# coloque-o entre as aspas duplas. Por ex: *
# ./script.sh "Nome de uma Empresa com Espaço" *
# *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

# Variáveis

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

# Nome da Empresa
if [ -z "$1" ]
then
empresa="Viva ao Linux Co."
else
empresa="$1"
fi

# Local do SERVIDOR
local_server=$(tail -1 $(ls *.csv | tail -1 ) | awk -F";" '{print$1}')

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

# Funções

monta_head () {
echo -e "<html>\n<head>\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 Referencia: $(date '+%d %m %Y')</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 tail -1 $arq | sed 's/\s//g;s/;/<\/td><td>/g;s/^/<tr><td>/g;s/$/<\/td>/g'
echo "<td>$(tail -1 $arq | awk -F";" '{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!</body>\n</hmtl>"
}

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



3) Salve e saia apertando CTRL X , depois aperte Y ou S, depois ENTER.

4) Dê permissão de execução:
chmod +x script.sh 


5) Execute-o, passando como parâmetro o nome da empresa.:
./script.sh "Codigos Abertos S/A" 


Pronto, ele vai gerar um arquivo chamado lista_server_data de hoje.html

OBS: O script deve ser executado na mesma pasta onde se encontram os arquivos.csv e deve receber como parâmetro nome da empresa. Caso o nome da empresa não for informado, o nome padrão será Viva ao Linux Co.


Era isso que queria?

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 ---


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

Alexandre Furlan
alexfurlan

(usa Ubuntu)

Enviado em 27/08/2015 - 08:48h

tonyhts escreveu:

Opa.

Desculpe a demora. Tô numa correria maluca... rs

Acho que não entendi algumas coisas. São elas:

a) A localidade é o primeiro campo do csv, no caso : Unidade ( que tbm é o valor da coluna 1). É isso mesmo ?
b) O arquivo csv só tem 2 linhas mesmo?
c) De onde extrair o nome da empresa? Pode ser passado na execução do script?

Se a resposta for sim para as 3 perguntas, segue abaixo o script. Se não, me avise para mudarmos.


Supondo que não saiba como criar e executar um script, vou descrever passo a passo:

1) Crie o arquivo (vc pode chamar como quiser, mas aqui vamos chamá-lo de script.sh):
cd /caminho/da/pasta/csv
nano script.sh

2) Cole o conteúdo Abaixo:
#!/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 gera um arquivo HTML. *
# *
# Uso: O nome da empresa deve ser passado como parâmetro, *
# do contrário, o nome padrão será Viva ao Linux Co. *
# Caso deseje usar um nome de empresa com espaço, *
# coloque-o entre as aspas duplas. Por ex: *
# ./script.sh "Nome de uma Empresa com Espaço" *
# *
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

# Variáveis

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

# Nome da Empresa
if [ -z "$1" ]
then
empresa="Viva ao Linux Co."
else
empresa="$1"
fi

# Local do SERVIDOR
local_server=$(tail -1 $(ls *.csv | tail -1 ) | awk -F";" '{print$1}')

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

# Funções

monta_head () {
echo -e "<html>\n<head>\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 Referencia: $(date '+%d %m %Y')</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 tail -1 $arq | sed 's/\s//g;s/;/<\/td><td>/g;s/^/<tr><td>/g;s/$/<\/td>/g'
echo "<td>$(tail -1 $arq | awk -F";" '{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!</body>\n</hmtl>"
}

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



3) Salve e saia apertando CTRL X , depois aperte Y ou S, depois ENTER.

4) Dê permissão de execução:
chmod +x script.sh 


5) Execute-o, passando como parâmetro o nome da empresa.:
./script.sh "Codigos Abertos S/A" 


Pronto, ele vai gerar um arquivo chamado lista_server_data de hoje.html

OBS: O script deve ser executado na mesma pasta onde se encontram os arquivos.csv e deve receber como parâmetro nome da empresa. Caso o nome da empresa não for informado, o nome padrão será Viva ao Linux Co.


Era isso que queria?

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, bom dia.
Também estou na correria. Muito obrigado pelo retorno.

Andei dando uma lida nas informações que passei anteriormente, e também achei um pouco confuso.

No caso, o cabeçalho todo (empresa, local, etc) é fixo, ou seja, as informações não vem de lugar nenhum. São incluídas manualmente, vai ser sempre a mesma coisa, dia após dia. Mas isso é tranquilo para mim. A única coisa que vai mudar, é a data de referência, mas também é tranquilo.

O arquivo csv tem apenas duas linhas (cabeçalho e as informações). O que vai mudar é a quantidade de csvs que vou ter (serão muitos). O script tem que incluir um, depois outro e outro, etc (laço de repetição, se não me engano).

As colunas que você montou no script, estão perfeitas. Vou testar.

Os dois últimos parágrafos são os meus 'calos'.
Tem como eu enviar uma imagem do resultado final?

Tem pouco tempo que estou escrevendo scripts. Pesquiso ali, aqui, acolá (rsrsrs), mas ainda sou inexperiente.

Obrigado mesmo pela ajuda.




8. Re: Abrir vários arquivos CSVs em HTML

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 27/08/2015 - 13:54h

Bom dia!

Segue respostas:



No caso, o cabeçalho todo (empresa, local, etc) é fixo, ou seja, as informações não vem de lugar nenhum. São incluídas manualmente, vai ser sempre a mesma coisa, dia após dia. Mas isso é tranquilo para mim. A única coisa que vai mudar, é a data de referência, mas também é tranquilo.

Ok. Entendido, Modifiquei o script para, assim que executado, pedir essas informações.


O arquivo csv tem apenas duas linhas (cabeçalho e as informações). O que vai mudar é a quantidade de csvs que vou ter (serão muitos). O script tem que incluir um, depois outro e outro, etc (laço de repetição, se não me engano).

O Script ja estava preparado para isso, ele vai ler todos os arquivos com a extensão .csv que estiver na pasta, tratar e adicionar ao lista_servers.html. Se existirem milhoes de arquivos .csv ele irá tratar todos e gerar um unico arquivo.


Os dois últimos parágrafos são os meus 'calos'.
Tem como eu enviar uma imagem do resultado final?

Não entendi. Vc quer enviar o arquivo html via email? ou quer me enviar um print do resultado que deseja para que sirva de "modelo"?


Tem pouco tempo que estou escrevendo scripts. Pesquiso ali, aqui, acolá (rsrsrs), mas ainda sou inexperiente.

É assim mesmo. Garanto que ninguém aqui leu um livro e já ficou bom....rs Só quebrando a cabeça mesmo. rs

Segue o script modificado:
#!/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 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


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

# Funções

monta_head () {
echo -e "<html>\n<head>\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 Referencia: $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 tail -1 $arq | sed 's/\s//g;s/;/<\/td><td>/g;s/^/<tr><td>/g;s/$/<\/td>/g'
echo "<td>$(tail -1 $arq | awk -F";" '{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!</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 ---


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

Alexandre Furlan
alexfurlan

(usa Ubuntu)

Enviado em 27/08/2015 - 14:17h

Vamos lá:

Ok. Entendido, Modifiquei o script para, assim que executado, pedir essas informações.

Esta parte não precisa se incomodar. Obrigado.

O Script ja estava preparado para isso, ele vai ler todos os arquivos com a extensão .csv que estiver na pasta, tratar e adicionar ao lista_servers.html. Se existirem milhoes de arquivos .csv ele irá tratar todos e gerar um unico arquivo.

Percebi depois que testei. Obrigado.

Não entendi. Vc quer enviar o arquivo html via email? ou quer me enviar um print do resultado que deseja para que sirva de "modelo"?

Seria um print da tela que eu vi. Tem como colar imagem aqui? Também enviaria um print do resultado do seu script (fiz algumas modificações no cabeçalho).

Abraços,



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

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 27/08/2015 - 14:21h

Ok.

Use o imgur: http://imgur.com/ e poste o o link aqui.

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 ---


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

Alexandre Furlan
alexfurlan

(usa Ubuntu)

Enviado em 27/08/2015 - 14:39h

Use o imgur: http://imgur.com/ e poste o o link aqui.

Não vai dar. Muitos sites aqui no trabalho são bloqueados, este imgur é um deles.
Mas acho que consegui postar no google.
MODELO PARTE 1: https://goo.gl/photos/PaSTx48sb4kdfoN37
MODELO PARTE 2 (rodapé): https://goo.gl/photos/EKRy3EDeBLD8Hh1U8
RESULTADO SCRIPT: https://goo.gl/photos/8Av39txZdWA3k2Zz5

Se não conseguir, pode ser por e-mail?
o meu é: alexfurlan1973@gmail.com




12. Re: Abrir vários arquivos CSVs em HTML

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 27/08/2015 - 16:40h

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 ---



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts