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á.
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
alexfurlanusa Ubuntu
Post recolhido
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.
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
tonyhtsusa Arch Linux
Post recolhido
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
alexfurlanusa Ubuntu
Post recolhido
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
tonyhtsusa Arch Linux
Post recolhido
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}')
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
alexfurlanusa Ubuntu
Post recolhido
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}')
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
tonyhtsusa Arch Linux
Post recolhido
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
---
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
alexfurlanusa Ubuntu
Post recolhido
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
Se não conseguir, pode ser por e-mail?
o meu é: alexfurlan1973@gmail.com
12. Re: Abrir vários arquivos CSVs em HTML
tonyhtsusa Arch Linux
Post recolhido
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
Usamos cookies essenciais para manter o site funcionando e Google Analytics para métricas de audiência. Cookies de anúncios só serão carregados se você permitir.