Newlines ao salvar variável no arquivo - bash

1

Eu tenho vários endereços IP em uma variável.

ActiveIPs= 192.168.0.1 192.168.0.2 192.168.0.3

Eu quero salvá-los em um arquivo como este

192.168.0.1
192.168.0.2
192.168.0.3

como faço isso?

    
por martio09 19.04.2013 / 13:30

2 respostas

3

Você pode fazer assim.

rm -f file
for i in ${ActiveIPs}
do
  echo ${i} >> file
done
    
por 19.04.2013 / 13:40
3

One-liner:

printf "%s\n" $ActiveIPs > ActiveIPs.txt

Isso se comporta da seguinte maneira:

  • $ ActiveIPs é expandido pelo shell.
    • A divisão de palavras divide-a em caracteres de espaço em branco. As peças são passadas para printf como parâmetros individuais.
    • Se fosse citado como em printf "%s\n" "$ActiveIPs" , não seria dividido e seria transmitido para printf como um único parâmetro.
  • printf pega o primeiro argumento e o formata com "% s \ n".
  • Se for dado a printf mais parâmetros que os especificadores de formato, ele reutiliza a string de formato. Neste caso, ele tem 1 especificador de formato (% s), então aplica "% s \ n" aos parâmetros restantes, um por um.
por 19.04.2013 / 16:29

Tags