Delimitador [RESOLVIDO]

1. Delimitador [RESOLVIDO]

Leonardo Ferreira Santos
le0.sant0s

(usa Outra)

Enviado em 04/04/2016 - 19:40h

Olá Pessoal,
Preciso de uma ajuda. Eu tenho o seguinte código:

1 for i in $(cat $hosts);
2 do
3
4 echo "create host_plain" $i | cut -f1 -d ";" >> $arq1
5 echo "modify network_objects" $i | cut -f1 -d ";" ipaddr $i | cut -f2 -d ";" >> 6 $arq1
7 echo "update network_objects" $i | cut -f1 -d ";" >> $arq1
done
exit

Eu preciso ler a primeira linha do arquivo hosts. Cada linha do arquivo está no formato "hostname; Endereço IP", na linha 4 eu preciso filtrar apenas o hostname, beleza isso funciona! Agora na linha 5 eu preciso filtrar o hostname antes da palavra ipaddr e o endereço IP depois da palavra ipaddr, mas quando eu executo o script a palavra ipaddr é lido como se fosse um argumento do comando cut, então da erro. Como faço pra esse filtro funcionar?

Agradeço muito a ajuda!


  


2. Re: Delimitador [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/04/2016 - 19:55h

Você poderia dar um exemplo de como deve ser a saída final de seu script?

----------------------------------------------------------------------------------------------------------------
# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



3. Re: Delimitador [RESOLVIDO]

Leonardo Ferreira Santos
le0.sant0s

(usa Outra)

Enviado em 04/04/2016 - 20:46h

A saída seria algo assim!

create host_plain host1
modify network_objects host1 ipaddr 192.168.1.1
update network_objects host1

Obrigado pela ajuda, consegui resolver com ajuda de um colega da seguinte forma:

while IFS=";" read hostname ipaddress
do
echo "create host_plain" $hostname
echo "modify network_objects" $hostname ipaddr $ipaddress
echo "update network_objects" $hostname
done <$hosts> $arq1



4. Re: Delimitador [RESOLVIDO]

Ronaldo Ferreira de Lima
textmode

(usa Slackware)

Enviado em 04/04/2016 - 21:53h

le0.sant0s escreveu:

Olá Pessoal,
Preciso de uma ajuda. Eu tenho o seguinte código:

1 for i in $(cat $hosts);
2 do
3
4 echo "create host_plain" $i | cut -f1 -d ";" >> $arq1
5 echo "modify network_objects" $i | cut -f1 -d ";" ipaddr $i | cut -f2 -d ";" >> 6 $arq1
7 echo "update network_objects" $i | cut -f1 -d ";" >> $arq1
done
exit

Eu preciso ler a primeira linha do arquivo hosts. Cada linha do arquivo está no formato "hostname; Endereço IP", na linha 4 eu preciso filtrar apenas o hostname, beleza isso funciona! Agora na linha 5 eu preciso filtrar o hostname antes da palavra ipaddr e o endereço IP depois da palavra ipaddr, mas quando eu executo o script a palavra ipaddr é lido como se fosse um argumento do comando cut, então da erro. Como faço pra esse filtro funcionar?

Agradeço muito a ajuda!


Para fins didáticos, seria interessante você remover os 'echo's internos e deixar apenas um 'echo $i' para observar o comportamento do looping declarado.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts