Enviado em 18/09/2018 - 13:38h
Olá, boa tarde caros amigos!
Estava refatorando um script antigo que tenho aqui, que tem por objetivo mostrar um arquivo CSV já preenchido com alguns dados de monitoramento.
Já tenho o script montando há muito tempo, porém ele faz bastante uso de sed, cat e etc...
Tive a ideia de refatorá-lo com o intuito de aumentar o desempenho.
Pois bem, deparei num problema e ainda não encontrei solução.
Já li tudo quanto é manual de referência, dicas e etc, inclusive em outros idiomas e não achei uma solução plausível, ou devo ter péssima qualidade para interpretar textos.
O que eu pretendo, com a ajuda dos amigos é a seguinte solução:
Tenho os seguintes arquivos:
result.tpl
monitor.sh
O script monitor tem algumas variáveis definidas com conteúdo que não posso revelar, mas vou exemplificar:
arquivo monitor.sh
arquivo result.tpl
o script gera um arquivo result.csv.
Porém, tenho que "parsear" todas as variáveis do arquivo "result.tpl" antes de gerar o resultado final, o que é algo como:
final=$(sed "s/$system/$system/g" result.tpl)
E assim faço com cada varável no intuito de substituir o valor da variável do script pela variável no arquivo "result.tpl".
A pergunta é:
Vocês conhecem alguma solução que permite interpretar as variáveis do arquivo "result.tpl" dentro do script sem precisar "parsear na unha"?
Algo como:
monitor. sh "result.tpl"
e ele já interpreta as variáveis dento do "result.tpl"?
Eu consegui com o cat <<EOF, porém tenho que misturar arquivos de programação com o arquivo de template, algo que não quero.
a intenção é algo parecido com:
Só que ao invés de imprimir na tela o conteudo exato do arquivo "result.tpl", ele imprimir o resultado dele já com as variáveis interpretadas com os valores das variáveis já definidos no script?
Espero não ter explicado mal, e que os amigos possam me ajudar!
Desde já, sou grato pela atenção e prometo testar todas as opções que os amigos, de boa vontade, me ensinarem.
Estava refatorando um script antigo que tenho aqui, que tem por objetivo mostrar um arquivo CSV já preenchido com alguns dados de monitoramento.
Já tenho o script montando há muito tempo, porém ele faz bastante uso de sed, cat e etc...
Tive a ideia de refatorá-lo com o intuito de aumentar o desempenho.
Pois bem, deparei num problema e ainda não encontrei solução.
Já li tudo quanto é manual de referência, dicas e etc, inclusive em outros idiomas e não achei uma solução plausível, ou devo ter péssima qualidade para interpretar textos.
O que eu pretendo, com a ajuda dos amigos é a seguinte solução:
Tenho os seguintes arquivos:
result.tpl
monitor.sh
O script monitor tem algumas variáveis definidas com conteúdo que não posso revelar, mas vou exemplificar:
arquivo monitor.sh
kernel="versão do kernel"
system="nome do sistema"
date="data atual"
user="usuário logado"
arquivo result.tpl
SISTEMA,KERNEL,USUARIO,DATA
$system,$kernel,$user,$date
o script gera um arquivo result.csv.
Porém, tenho que "parsear" todas as variáveis do arquivo "result.tpl" antes de gerar o resultado final, o que é algo como:
final=$(sed "s/$system/$system/g" result.tpl)
E assim faço com cada varável no intuito de substituir o valor da variável do script pela variável no arquivo "result.tpl".
A pergunta é:
Vocês conhecem alguma solução que permite interpretar as variáveis do arquivo "result.tpl" dentro do script sem precisar "parsear na unha"?
Algo como:
monitor. sh "result.tpl"
e ele já interpreta as variáveis dento do "result.tpl"?
Eu consegui com o cat <<EOF, porém tenho que misturar arquivos de programação com o arquivo de template, algo que não quero.
a intenção é algo parecido com:
#!/bin/bash
kernel="versão do kernel"
system="nome do sistema"
date="data atual"
user="usuário logado"
template="result.tpl"
final="result.csv"
function renderTemplate(){
echo $template > $final
}
Só que ao invés de imprimir na tela o conteudo exato do arquivo "result.tpl", ele imprimir o resultado dele já com as variáveis interpretadas com os valores das variáveis já definidos no script?
Espero não ter explicado mal, e que os amigos possam me ajudar!
Desde já, sou grato pela atenção e prometo testar todas as opções que os amigos, de boa vontade, me ensinarem.