bashですべてのひらがな・カタカナを出力する

残念ながら、bashのブレース展開では「echo -e {あ..ん}」といった指定ではひらがなの一覧を出力できない(zshでは可能)。

blacknon@BS-PUB-UBUNTU-01:~$ bash -c 'echo -e {あ..ん}'
{あ..ん}
blacknon@BS-PUB-UBUNTU-01:~$ zsh -c 'echo -e {あ..ん}'
あ ぃ い ぅ う ぇ え ぉ お か が き ぎ く ぐ け げ こ ご さ ざ し じ す ず せ ぜ そ ぞ た だ ち ぢ っ つ づ て で と ど な に ぬ ね の は ば ぱ ひ び ぴ ふ ぶ ぷ へ べ ぺ ほ ぼ ぽ ま み む め も ゃ や ゅ ゆ ょ よ ら り る れ ろ ゎ わ ゐ ゑ を ん
Sponsored Links

じゃbashで出力させる場合どうするかと考えてみたところ、対象範囲となるUnicodeの文字コードを出力させて、その指定範囲をechoで出力させることで対応するのが良さそうだ。
前回書いた16進数の一覧を出力させる処理を利用する。

printf 'echo -e "\\U30%02x\"\n' {0..255} | awk '/3041/,/3094/' | bash | tr -d '\n'
blacknon@BS-PUB-UBUNTU-01:~$ printf 'echo -e "\\U30%02x\"\n' {0..255} | awk '/3041/,/3094/' | bash | tr -d '\n'
ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヴ

 

なお、カタカナの場合30A1~30FAが範囲になるようだ。

printf 'echo -e "\\U30%02x\"\n' {0..255} | awk '/30a1/,/30fa/' | bash | tr -d '\n'

 


Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*