既存の配列の固有値を使用して新しい配列を作成する [重複]

既存の配列の固有値を使用して新しい配列を作成する [重複]

他の配列の一意の値に基づいて新しい変数配列を作成しようとしても、目的の結果は得られません。

元の配列

# echo ${owner[*]}
390920ad-2858-e651-a4af-a9eaa6acaebb 390920ad-2858-e651-a4af-a9eaa6acaebb e14c2413-7179-44f8-dfc3-b8624dcb10bb 390920ad-2858-e651-a4af-a9eaa6acaebb e14c2413-7179-44f8-dfc3-b8624dcb10bb 390920ad-2858-e651-a4af-a9eaa6acaebb e14c2413-7179-44f8-dfc3-b8624dcb10bb 390920ad-2858-e651-a4af-a9eaa6acaebb 390920ad-2858-e651-a4af-a9eaa6acaebb 390920ad-2858-e651-a4af-a9eaa6acaebb e14c2413-7179-44f8-dfc3-b8624dcb10bb 390920ad-2858-e651-a4af-a9eaa6acaebb e14c2413-7179-44f8-dfc3-b8624dcb10bb 390920ad-2858-e651-a4af-a9eaa6acaebb 390920ad-2858-e651-a4af-a9eaa6acaebb 390920ad-2858-e651-a4af-a9eaa6acaebb 390920ad-2858-e651-a4af-a9eaa6acaebb 0a452389-5ed2-e46f-ad15-cc538c82650d 4232f23d-ed48-4b14-c0ea-aa911fd24920 8ee1b05f-2473-4c37-bfc5-ae393921b939

私が使用するコマンド

uniq=($(printf "%s\n" "${owner[@]}" | sort -u))

質問(すべての固有値をインデックス0の下に単一の値として保存します)

# echo ${uniq[0]}
0a452389-5ed2-e46f-ad15-cc538c82650d
390920ad-2858-e651-a4af-a9eaa6acaebb
4232f23d-ed48-4b14-c0ea-aa911fd24920
8ee1b05f-2473-4c37-bfc5-ae393921b939
e14c2413-7179-44f8-dfc3-b8624dcb10bb
# echo ${uniq[1]}

#

この配列で一意の値を取得するより良い方法を知っている人はいますか?

SmartOSでbashを使用する(Solarisに似ています)

編集する

また、各値を独自のインデックス番号の下に保存することを試みましたが、重複した値は削除されません。

uniq=($(printf "%s " "${owner[@]}" | sort -u))

ベストアンサー1

uniq=($(printf "%s\n" "${owner[@]}" | sort -u | tr '\n' ' '))

すべきこと。

または、説明の説明に従ってIFSを修正してください。

おすすめ記事