0

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」などでこれを行うスマートな方法はありますか? ありがとう!

4

1 に答える 1

1

これは で動作し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
于 2013-02-21T09:02:26.683 に答える