zshで配列の中をソートするにはParameter Expansion Flags(パラメータ展開フラグ)を使用する。
配列を作成する
以下、この配列を使用して説明する。
$ typeset -a arr $ arr=( "bravo" "1234" "golf" "alpha" "delta" "foxtrot" "charlie" "echo" "0120" )
実際にソートする
アルファベット順にソートする
配列の中身をアルファベット順にソートするにはo
フラグを使用する。
$ echo ${(o)arr} 0120 1234 alpha bravo charlie delta echo foxtrot golf
アルファベット逆順にソートする
配列の中身をアルファベット逆順にソートするにはO
フラグを使用する。
$ echo ${(O)arr} golf foxtrot echo delta charlie bravo alpha 1234 0120
配列全体をそのままの順でソートする
配列の中身をそのままソートする(何もしない)にはa
フラグを使用する。
$ echo ${(a)arr} bravo 1234 golf alpha delta foxtrot charlie echo 0120
何もしないこともソートと言っていいのだろうか?
配列全体を逆順にソートする
配列の中身を逆順にするにはOa
フラグを使用する。
$ echo ${(Oa)arr} 0120 echo charlie foxtrot delta alpha golf 1234 bravo
正確にはa
フラグで配列全体を対象とし、O
フラグで逆順にソートしている。
参照
http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion