🎃

【Bash】指定したコードポイントの範囲の文字を出力する

2023/10/14に公開

「あいうえお」を出力してみます。準備として 0x3042 から 0x304A までの整数を生成してみましょう

echo 304{{2..8..2},{A..A}}
3042 3044 3046 3048 304A

ユニコードエスケープシーケンスを printf で出力してみます。

printf '%b ' \\U304{{2..8..2},{A..A}}; echo
あ い う え お 

今度はひらがなブロックのすべてのコードポイントを生成してみます。範囲は 0x3041 から 0x309F です。

echo 30{4..9}{{0..9},{A..F}}

文字を出力してみます。数が多いので paste で一定の幅に収めます。

printf %b\\n \\U30{4..9}{{0..9},{A..F}} | paste -d\  -{,,,}{,,,}

今度は顔文字を扱ってみましょう。範囲は 1F600~1F64F です。

echo 1F6{0..4}{{0..9},{A..F}}

同じようにすべてを表示させてみます。

printf %b\\n \\U1F6{0..4}{{0..9},{A..F}} | paste -d\  -{,,,}{,,,}

Discussion