vorfee's Tech Blog

Just another tech blog

zshで配列のソートをする

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