Ostatnio aktywny 1744769689

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

Rewizja acd193524ca0073a18dd88aab1301fc83244e849

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