Array Operations and Manipulation

Demonstrates indexed arrays in Bash including declaration, iteration, slicing, appending, sorting, and filtering with practical data processing examples.

BashCli Tooling

Code

snippet
#!/usr/bin/env bash
set -euo pipefail

# Declare and initialize arrays
fruits=("apple" "banana" "cherry")
declare -a numbers=([0]=10 [1]=20 [5]=50)

# Access elements
echo "First: ${fruits[0]}"
echo "All: ${fruits[@]}"
echo "Count: ${#fruits[@]}"

# Append elements
fruits+=("date" "elderberry")
echo "After append: ${fruits[@]}"

# Slice arrays
echo "Slice 1-3: ${fruits[@]:1:3}"
echo "From index 2: ${fruits[@]:2}"

# Iterate with index
for i in "${!fruits[@]}"; do
    echo "  [$i] = ${fruits[$i]}"
done

# Remove element
unset 'fruits[1]'
fruits=("${fruits[@]}")
echo "After removal: ${fruits[@]}"

# Sort array
sorted=($(printf "%s\n" "${fruits[@]}" | sort))
echo "Sorted: ${sorted[@]}"

# Filter array
filtered=()
for fruit in "${fruits[@]}"; do
    [[ ${#fruit} -gt 5 ]] && filtered+=("$fruit")
done
echo "Filtered (>5 chars): ${filtered[@]}"

# Unique elements
all=(1 2 3 2 1 4 5 3)
unique=($(printf "%s\n" "${all[@]}" | sort -u))
echo "Unique: ${unique[@]}"