Ostatnio aktywny 1744769689

Как в bash удалить повторы из массива

Rewizja 048d1e4c5c24e98693b373d8e693a3121566f798

shell.sh Surowy
1<uniques>=($(echo "${<array>[@]}" | tr ' ' '\\n' | sort -u | tr '\\n' ' '))
2
3Пример:
4
5--> ARRAY=("one" "one" "two" "two" "two" "one" "three")
6--> UNIQUES=($(echo "${ARRAY[@]}" | tr ' ' '\\n' | sort -u | tr '\\n' ' '))
7--> echo $UNIQUES
8one three two
9
10# улучшенный вариант от Ивана Гришина - @JohnMcGru - и правильнее, и короче
11UNIQUES=( $(printf "%s\n" "${ARRAY[@]}" | sort -u ) )
12echo "${UNIQUES[@]}"
13###one three two
14
15# внутри скобочек VAR=(...) можно оставлять переводы строк
16VAR=( it
17  is
18  OK
19)
20echo "${VAR[@]}"
21
22# опубликовано в https://t.me/gitgate