シェルスクリプトで配列の重複を消す際の備忘録です
以下のようにsort -u(--unique )
を使用すればOK
test.sh
array=(foo bar foo baz bar foo)
array2=()
i=0
while read -r x; do
array2[i++]="$x"
done < <(printf '%s\n' "${array[@]}" | sort -u)
echo "array --->"
echo "${array[@]}"
echo "array2 --->"
echo "${array2[@]}"
実行結果
$ bash test.sh
array --->
foo bar foo baz bar foo
array2 --->
bar baz foo
参考