Последняя активность 1744769689

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

LittleGreenCat's Avatar LittleGreenCat ревизий этого фрагмента 1744769688. К ревизии

1 file changed, 2 insertions, 3 deletions

shell.sh

@@ -1,13 +1,12 @@
1 1 <uniques>=($(echo "${<array>[@]}" | tr ' ' '\\n' | sort -u | tr '\\n' ' '))
2 2
3 - Пример:
4 -
3 + # Пример:
5 4 --> ARRAY=("one" "one" "two" "two" "two" "one" "three")
6 5 --> UNIQUES=($(echo "${ARRAY[@]}" | tr ' ' '\\n' | sort -u | tr '\\n' ' '))
7 6 --> echo $UNIQUES
8 7 one three two
9 8
10 - # улучшенный вариант от Ивана Гришина - @JohnMcGru - и правильнее, и короче
9 + # улучшенный вариант от Ивана Гришина - https://t.me/JohnMcGru - и правильнее, и короче
11 10 UNIQUES=( $(printf "%s\n" "${ARRAY[@]}" | sort -u ) )
12 11 echo "${UNIQUES[@]}"
13 12 ###one three two

LittleGreenCat's Avatar LittleGreenCat ревизий этого фрагмента 1744769660. К ревизии

1 file changed, 22 insertions

shell.sh(файл создан)

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