変数に複数の 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
どうすればいいですか?
変数に複数の 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
どうすればいいですか?
$ 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
printf
必要に応じてパターンを繰り返します。
ActiveIPs="192.168.0.1 192.168.0.2 192.168.0.3"
printf "%s\n" $ActiveIPs > file.txt
for ip in $ActiveIPs; do
echo $ip >> file
done
パラメータ展開を使用して、すべての空白文字を改行に変更します。
$ 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
\
注 -ヒットした改行の直後 - :
echo $ActiveIPs | sed 's/ /\
/g'