1

たとえば、「可視文字」のクラスが与えられます

[:graph:]

別名

[\x21-\x7E]

それらを「照合」順序で印刷するにはどうすればよいですか。つまり、によって決定される順序です。LC_COLLATE

4

1 に答える 1

2

並べ替えを実行するだけです。最も難しい部分は、文字のリストを取得することです。これはASCIIで機能します:

for ((i=0x21; i<=0x7E; i++))
do 
    printf "\\$(printf '%03o' $i)\0"; 
done | sort -z | tr -d '\0'

各文字とそれに続く NUL バイトを書き出し、それらをすべて並べ替え ( sortLC_COLLATE を考慮)、最後に NUL を削除します。

于 2013-02-07T17:23:20.053 に答える