1

変数に複数の IP アドレスがあります。

ActiveIPs=192.168.0.1 192.168.0.2 192.168.0.3

改行で区切られたこのようなファイルに保存したい

192.168.0.1
192.168.0.2
192.168.0.3

どうすればいいですか?

4

6 に答える 6

2
$ ActiveIPs="192.168.0.1 192.168.0.2 192.168.0.3"

$ awk '1' RS=' ' <<< "$ActiveIPs"
192.168.0.1
192.168.0.2
192.168.0.3
于 2013-04-19T12:03:13.340 に答える
1

printf必要に応じてパターンを繰り返します。

ActiveIPs="192.168.0.1 192.168.0.2 192.168.0.3"
printf "%s\n" $ActiveIPs > file.txt
于 2013-04-19T11:53:37.573 に答える
1
for ip in $ActiveIPs; do
    echo $ip >> file
done
于 2013-04-19T11:55:12.623 に答える
1

パラメータ展開を使用して、すべての空白文字を改行に変更します。

$ foo='abc def ghi'
$ echo "${foo// /$'\n'}"
abc
def
ghi

パラメータ展開を使用すると、組み込みコマンドでさえも、新しいプロセスの作成を完全に回避できます。

可能であれば、値を配列に保存することをお勧めします。

$ input=( 192.168.0.100 10.0.0.1 192.168.0.101 )

このようにして、シェルが単語を分割する方法を完全に制御でき、外部コマンドを呼び出す必要はありません。

$ SAVE_IFS="$IFS"
$ IFS=$'\n'
$ echo "${input[*]}"
192.168.0.100
10.0.0.1
192.168.0.101
于 2013-04-19T11:58:44.353 に答える
0

\注 -ヒットした改行の直後 - :

echo $ActiveIPs | sed 's/ /\
/g'
于 2013-04-19T11:54:37.170 に答える