Bash

Sort an Array

admin by @admin ADMIN
Jun 15, 2026
May 31, 2026
Public
0 0 up · 0 down Sign in to vote
Bash itself doesn't sort arrays — you pipe through `sort`. readarray captures the sorted output back into an array, preserving each element verbatim (including spaces).
Bash
Raw
arr=("banana" "apple" "cherry" "Apple")

# Alphabetical (case-sensitive by default)
readarray -t sorted < <(printf '%s\n' "${arr[@]}" | sort)
printf '%s\n' "${sorted[@]}"
# Apple
# apple
# banana
# cherry

# Case-insensitive
readarray -t sorted_ci < <(printf '%s\n' "${arr[@]}" | sort -f)

# Numeric sort
nums=(10 1 22 3 8)
readarray -t nsorted < <(printf '%s\n' "${nums[@]}" | sort -n)
echo "${nsorted[@]}"     # 1 3 8 10 22
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.