msoliver
(usa Debian)
Enviado em 11/09/2018 - 20:50h
ghoostuser escreveu:
msoliver escreveu:
ghoostuser escreveu:
Galera, seguinte. Tenho o seguinte arquivo "config.conf":
[stage]
user: ghoost
url: www.example.com
[production]
user: ghostinho
url: www.example2.com
Quero fazer em shellscript a saida das diretivas de acordo com o comando usado, por exemplo:
$ ./script env stage
user: ghoost
url:
www.example.com
Entenderam?
Tem que ser com essa configuração, não pode mudar. É para uma tarefa.
Boa noite GoostUser.
Segue sugestão:
#!/bin/bash
alvo="config.conf"
ParamValido=$(sed -n '/\[.*\]/p' $alvo |sed 's/\[\|\]//g'|tr "\n" "|")
if [ $2 ] && [[ $2 =~ ^(${ParamValido})$ ]];then
var="$2"
awk 'BEGIN{FS="\n";RS="\n\n"} $1 ~ /'$var'/ {OFS="\n";print $2,$3}' $alvo
else
echo -e "\nParametro Inválido"
fi
att.:
marcelo oliver
Bom dia Marcelo!
Funcionou, só que se tiver mais valores na chave, eles não são mostrado, só mostra url e user. :/
Boa noite.
Sim, com base no seu exemplo, fiz para mostrar o campo 2 e o 3....
Isso é simples de resolver,,,,
Como a quantidade de campos é variável em cada registro,
No awk, com base no nº de campos (NF), faça um laço para pegar todos campos, exceto o primeiro.
att.:
Marcelo oliver