メモ帳には次のデータがあります。
4480-1
4480-2
4480-3
4480-15
4581-1
4581-2
4581-3
4581-4
forループのようなものを使ってこれを行うことはできますか? sedを使用しますか?
私が望む出力は4480-1&-2&-3&-15&4581-1&-2&-3&-4
ベストアンサー1
これは働きます:
awk -F- '$1!=a{printf "%s", $1} {printf "-%s&", $2} {a=$1}' file | sed 's/&$/\n/g'
出力:
4480-1&-2&-3&-15&4581-1&-2&-3&-4
説明する:
awk -F-
区切り記号は次のとおりです。-
$1!=a{printf "%s", $1}
4480
最初の部分が最後に処理された行と異なる場合は、最初の部分を印刷します。{printf "-%s&", $2}
&
最後に2番目の部分を印刷してください。{a=$1}
処理された行にaを設定します。sed 's/&$/\n/g'
最後の文字aを削除し、&
改行文字を追加します。