sedで四声付きピンイン入力の支援スクリプト

中国語の発音記号であるピンインを入力するには みなさん 苦労されているようです。クリップボードモリーを利用して入力したり、FEPの辞書登録を利用したりしているようです。sed が使用できる環境であれば、下記のようなスクリプトでも入力ができそうです。

你好世界!の声調記号は Nǐ hǎo shìjiè! と表記されるのですが、これをパソコンに入力する際は便宜的に Ni3 hao3 shi4jie4! と書き下すことが多いようです。この "Ni3 hao3 shi4jie4!" をパイプで下記のスクリプトに通すと、Nǐ hǎo shìjiè! に変換されます。

当初、教科書順に単母音を上の行に書いていたのですが、そうすると先に単母音が変換されてしまい期待したのと違う変換となってしまったため逆順にしました。

全ての母音を変換対象としていますので、少し冗長ではあります。もう少し吟味すれば行数を減らせそうではありますが、現在この状態でのテスト使用を実施中です。

f:id:S_E_Hyphen:20210110160019p:plain

 

sed \
 -e "s/Er4/Èr/g"  -e "s/Er3/Ěr/g"  -e "s/Er2/Ér/g"  -e "s/Er1/Ēr/g" \
 -e "s/er4/èr/g"  -e "s/er3/ěr/g"  -e "s/er2/ér/g"  -e "s/er1/ēr/g" \
 -e "s/iong4/iòng/g"  -e "s/iong3/iǒng/g"  -e "s/iong2/ióng/g"  -e "s/iong1/iōng/g" \
 -e "s/weng4/wèng/g"  -e "s/weng3/wěng/g"  -e "s/weng2/wéng/g"  -e "s/weng1/wēng/g" \
 -e "s/uang4/uàng/g"  -e "s/uang3/uǎng/g"  -e "s/uang2/uáng/g"  -e "s/uang1/uāng/g" \
 -e "s/ing4/ìng/g"  -e "s/ing3/ǐng/g"  -e "s/ing2/íng/g"  -e "s/ing1/īng/g" \
 -e "s/iang4/iàng/g"  -e "s/iang3/iǎng/g"  -e "s/iang2/iáng/g"  -e "s/iang1/iāng/g" \
 -e "s/ong4/òng/g"  -e "s/ong3/ǒng/g"  -e "s/ong2/óng/g"  -e "s/ong1/ōng/g" \
 -e "s/Eng4/Èng/g"  -e "s/Eng3/Ěng/g"  -e "s/Eng2/Éng/g"  -e "s/Eng1/Ēng/g" \
 -e "s/eng4/èng/g"  -e "s/eng3/ěng/g"  -e "s/eng2/éng/g"  -e "s/eng1/ēng/g" \
 -e "s/Ang4/Àng/g"  -e "s/Ang3/Ǎng/g"  -e "s/Ang2/Áng/g"  -e "s/Ang1/Āng/g" \
 -e "s/ang4/àng/g"  -e "s/ang3/ǎng/g"  -e "s/ang2/áng/g"  -e "s/ang1/āng/g" \
 -e "s/un4/ùn/g"  -e "s/un3/ǔn/g"  -e "s/un2/ún/g"  -e "s/un1/ūn/g" \
 -e "s/uan4/uàn/g"  -e "s/uan3/uǎn/g"  -e "s/uan2/uán/g"  -e "s/uan1/uān/g" \
 -e "s/un4/ùn/g"  -e "s/un3/ǔn/g"  -e "s/un2/ún/g"  -e "s/un1/ūn/g" \
 -e "s/uan4/uàn/g"  -e "s/uan3/uǎn/g"  -e "s/uan2/uán/g"  -e "s/uan1/uān/g" \
 -e "s/in4/ìn/g"  -e "s/in3/ǐn/g"  -e "s/in2/ín/g"  -e "s/in1/īn/g" \
 -e "s/ian4/iàn/g"  -e "s/ian3/iǎn/g"  -e "s/ian2/ián/g"  -e "s/ian1/iān/g" \
 -e "s/En4/Èn/g"  -e "s/En3/Ěn/g"  -e "s/En2/Én/g"  -e "s/En1/Ēn/g" \
 -e "s/en4/èn/g"  -e "s/en3/ěn/g"  -e "s/en2/én/g"  -e "s/en1/ēn/g" \
 -e "s/An4/Àn/g"  -e "s/An3/Ǎn/g"  -e "s/An2/Án/g"  -e "s/An1/Ān/g" \
 -e "s/an4/àn/g"  -e "s/an3/ǎn/g"  -e "s/an2/án/g"  -e "s/an1/ān/g" \
 -e "s/iu4/iù/g"  -e "s/iu3/iǔ/g"  -e "s/iu2/iú/g"  -e "s/iu1/iū/g" \
 -e "s/iao4/iào/g"  -e "s/iao3/iǎo/g"  -e "s/iao2/iáo/g"  -e "s/iao1/iāo/g" \
 -e "s/ui4/uì/g"  -e "s/ui3/uǐ/g"  -e "s/ui2/uí/g"  -e "s/ui1/uī/g" \
 -e "s/uai4/uài/g"  -e "s/uai3/uǎi/g"  -e "s/uai2/uái/g"  -e "s/uai1/uāi/g" \
 -e "s/ue4/uè/g"  -e "s/ue3/uě/g"  -e "s/ue2/ué/g"  -e "s/ue1/uē/g" \
 -e "s/uo4/uò/g"  -e "s/uo3/uǒ/g"  -e "s/uo2/uó/g"  -e "s/uo1/uō/g" \
 -e "s/ua4/uà/g"  -e "s/ua3/uǎ/g"  -e "s/ua2/uá/g"  -e "s/ua1/uā/g" \
 -e "s/ie4/iè/g"  -e "s/ie3/iě/g"  -e "s/ie2/ié/g"  -e "s/ie1/iē/g" \
 -e "s/ia4/ià/g"  -e "s/ia3/iǎ/g"  -e "s/ia2/iá/g"  -e "s/ia1/iā/g" \
 -e "s/Ou4/Òu/g"  -e "s/Ou3/Ǒu/g"  -e "s/Ou2/Óu/g"  -e "s/Ou1/Ōu/g" \
 -e "s/ou4/òu/g"  -e "s/ou3/ǒu/g"  -e "s/ou2/óu/g"  -e "s/ou1/ōu/g" \
 -e "s/Ao4/Ào/g"  -e "s/Ao3/Ǎo/g"  -e "s/Ao2/Áo/g"  -e "s/Ao1/Āo/g" \
 -e "s/ao4/ào/g"  -e "s/ao3/ǎo/g"  -e "s/ao2/áo/g"  -e "s/ao1/āo/g" \
 -e "s/Ei4/Èi/g"  -e "s/Ei3/Ěi/g"  -e "s/Ei2/Éi/g"  -e "s/Ei1/Ēi/g" \
 -e "s/ei4/èi/g"  -e "s/ei3/ěi/g"  -e "s/ei2/éi/g"  -e "s/ei1/ēi/g" \
 -e "s/Ai4/Ài/g"  -e "s/Ai3/Ǎi/g"  -e "s/Ai2/Ái/g"  -e "s/Ai1/Āi/g" \
 -e "s/ai4/ài/g"  -e "s/ai3/ǎi/g"  -e "s/ai2/ái/g"  -e "s/ai1/āi/g" \
 -e "s/v4/ǜ/g"  -e "s/v3/ǚ/g"  -e "s/v2/ǘ/g"  -e "s/v1/ǖ/g" \
 -e "s/v0/ü/g" -e "s/v/ü/g" \
 -e "s/U4/Ù/g"  -e "s/U3/Ǔ/g"  -e "s/U2/Ú/g"  -e "s/U1/Ū/g" \
 -e "s/u4/ù/g" -e "s/u3/ǔ/g"  -e "s/u2/ú/g"  -e "s/u1/ū/g" \
 -e "s/I4/Ì/g"  -e "s/I3/Ǐ/g"  -e "s/I2/Í/g"  -e "s/I1/Ī/g" \
 -e "s/i4/ì/g"  -e "s/i3/ǐ/g"  -e "s/i2/í/g"  -e "s/i1/ī/g" \
 -e "s/E4/È/g"  -e "s/E3/Ě/g"  -e "s/E2/É/g"  -e "s/E1/Ē/g" \
 -e "s/e4/è/g"  -e "s/e3/ě/g"  -e "s/e2/é/g"  -e "s/e1/ē/g" \
 -e "s/O4/Ò/g"  -e "s/O3/Ǒ/g"  -e "s/O2/Ó/g"  -e "s/O1/Ō/g" \
 -e "s/o4/ò/g"  -e "s/o3/ǒ/g"  -e "s/o2/ó/g"  -e "s/o1/ō/g" \
 -e "s/A4/À/g"  -e "s/A3/Ǎ/g"  -e "s/A2/Á/g"  -e "s/A1/Ā/g" \
 -e "s/a4/à/g"  -e "s/a3/ǎ/g"  -e "s/a2/á/g"  -e "s/a1/ā/g"