bashスクリプトでいくつかの行を再配置したいと思います。
入力:
Name1 127.0.0.1
Name2 127.0.0.2
Name2 127.0.0.5
Name2 127.0.0.8
Name3 127.0.0.3
出力:
Name1 127.0.0.1
Name2 127.0.0.2, 127.0.0.5, 127.0.0.8
Name3 127.0.0.3
「awk」や「sed」などでこれを行うスマートな方法はありますか? ありがとう!
bashスクリプトでいくつかの行を再配置したいと思います。
入力:
Name1 127.0.0.1
Name2 127.0.0.2
Name2 127.0.0.5
Name2 127.0.0.8
Name3 127.0.0.3
出力:
Name1 127.0.0.1
Name2 127.0.0.2, 127.0.0.5, 127.0.0.8
Name3 127.0.0.3
「awk」や「sed」などでこれを行うスマートな方法はありますか? ありがとう!
これは で動作しbash
ます。すべての IP を取得し、適切な名前でグループ化します
declare -A ips
while read name ip; do
if [ -n "${ips[$name]}" ]; then
ips[$name]="${ips[$name]}, $ip"
else
ips[$name]="$ip"
fi
done
for i in "${!ips[@]}"; do
echo "$i ${ips[$i]}"
done
あなたはそれを呼び出すことができます
bash script.sh <input.txt