bashの配列の操作について詰まったときに調べたこと

bashをいじっているときに配列操作で色々と詰まったときに調べたことを書いていきます.

宣言

要素なし

arr=()

要素あり

arr=(1 2 'hoge')

ランダムな数字を配列に挿入

range=$(seq 1 5) # ループの回数 5回
for i in $range; do
  arr=(${arr[@]} $(($RANDOM % 6))); # 0~5のランダムな数字をarrに追加する
done

ソート

sorted=$( printf "%s¥n" "${arr[@]}" | sort -n) # 昇順

数値の場合はsortの後ろに-nをつける. 文字列ならつけない.

降順の場合は後ろに-rをつける.

sorted=$( printf "%s¥n" "${arr[@]}" | sort -n -r) # 降順

重複なしにする(集合として扱う)

uniq=$( printf "%s¥n" "${arr[@]}" | sort -u -n)

最後に

sortの後ろにつける-n-r, -u

uniq=$( printf "%s¥n" "${arr[@]}" | sort -u -n -r) # 数値を重複なしにして降順でソート

のように2つ以上つけることもできる.

また、イコールの両脇にスペースをつけるとエラー吐くため癖でスペースを入れてしまわないように注意が必要!!!!!