てきとうなメモ

本の感想とか技術メモとか

bashでUnicodeのコードポイントを扱う

echo(ビルトインコマンド)を使うのと

$ echo -e '\u3042'
あ

$'string'を使う方法がある

$ echo $'\u3042'
あ

バージョン4からみたいだが。

あと、bashそのものではないけどGNU coreutilsのprintfつかうとコードポイントを指定して出力できるけどね。

$ printf '\u3042\n'
あ

これを使うとコードポイントの範囲を指定して一覧出力とかできる。以下はひらがな一覧(U+3040〜U+309F)を出力する例

$ for s in `seq 0x3040 0x309f`; do echo -e \\u`printf "%04x" $s`; done
぀
ぁ
あ
ぃ
い
ぅ
う
ぇ
え
ぉ
お
...

seqって16進数扱えるんだね。