<Предыдущая | Содержание: | Следующая>
Сортировка массива
Как и в случае с электронными таблицами, часто бывает необходимо отсортировать значения в столбце данных. У оболочки нет прямого способа сделать это, но это несложно сделать с помощью небольшого кода:
#! / Bin / Баш
# array-sort: Сортировка массива a = (fedcba)
echo "Исходный массив: $ {a [@]}"
a_sorted = ($ (for i in "$ {a [@]}"; do echo $ i; done | sort)) echo "Отсортированный массив: $ {a_sorted [@]}"
#! / Bin / Баш
# array-sort: Сортировка массива a = (fedcba)
echo "Исходный массив: $ {a [@]}"
a_sorted = ($ (for i in "$ {a [@]}"; do echo $ i; done | sort)) echo "Отсортированный массив: $ {a_sorted [@]}"
При выполнении сценарий производит следующее:
[я @ linuxbox ~] $ сортировка по массиву Исходный массив: fedcba Сортированный массив: abcdef
[я @ linuxbox ~] $ сортировка по массиву Исходный массив: fedcba Сортированный массив: abcdef
Скрипт копирует содержимое исходного массива (a) во второй массив (a_sorted) с хитрой подстановкой команд. Этот базовый метод можно использовать для выполнения многих видов операций с массивом путем изменения конструкции конвейера.