Bashで文字と数字の配列を並べ替える方法は? [コピー]

Bashで文字と数字の配列を並べ替える方法は? [コピー]

配列があり、h4 h5 h1 h2 h3数字で並べ替えたいのですが、方法がわかりません。これを行う最良の方法は何ですか?

edit1:また、他の文字を含む数字で配列を並べ替えたいのです(例:)s4 h5 q1 h2 g3

ベストアンサー1

使用する必要はありませんtr。 (サブシェルから)シェルの「引数拡張」でIFS十分です。努力する

$ ARR=(h4 h5 h1 h2 h3)
$ SA=( $(IFS=$'\n'; echo "${ARR[*]}" | sort) )
$ BRR=(s4 h5 q1 h2 g3)
$ SB=( $(IFS=$'\n'; echo "${BRR[*]}" | sort -k1.2) )
$ echo "${SB[*]}" 
q1 h2 g3 s4 h5

おすすめ記事