在我的中文输入法的字典文件中,我有超过10万的语音条目。有些投稿人不能输入朱音(bopomofo),但只能输入拼音(带有数字语调)。
我写了一个sed脚本,它可以自动地将这样的拼音符号转换成朱音。然而,sed需要很长时间来执行整个文件的操作,因为sed文件本身很大.几乎500行regex。
我在想,sed是否只能触发到那些包含拼音的行?
样本输入:
鸞膠續斷 luan2 jiao1 xu4 duan4
鸞駕 luan2 jia4
鸞儔鳳侶 ㄌㄨㄢˊ ㄔㄡˊ ㄈㄥˋ ㄌㄩˇ
鸞輿 ㄌㄨㄢˊ ㄩˊ
鸞鵠停峙 ㄌㄨㄢˊ ㄏㄨˊ ㄊㄧㄥˊ ㄓˋ
鸞飄鳳泊 ㄌㄨㄢˊ ㄆㄧㄠ ㄈㄥˋ ㄅㄛˊ
鸞鶴 ㄌㄨㄢˊ ㄏㄜˋ
鸞鑑 ㄌㄨㄢˊ ㄐㄧㄢˋ
灩澦堆 yan4 yu4 dui1
灩灩 yan4 yan4
籲天 ㄩˋ ㄊㄧㄢ
籲求 ㄩˋ ㄑㄧㄡˊ
籲請 ㄩˋ ㄑㄧㄥˇ
麤服亂頭 ㄘㄨ ㄈㄨˊ ㄌㄨㄢˋ ㄊㄡˊ
麤疏 cu1 shu1
麤糲 cu1 li4
齾齾 ya4 ya4
齉鼻兒 nang4 bi2 er1
㔩葉 e4 ye4
㟏岈 ㄏㄢ ㄒㄧㄚ
㥄遽 ㄌㄧㄥˊ ㄐㄩˋ
㥏墨 ㄊㄧㄢˇ ㄇㄛˋ
㩳身 ㄙㄨㄥˇ ㄕㄣ
㲯毿 ㄌㄢˊ ㄙㄢ
㶁㶁 ㄍㄨㄛˊ ㄍㄨㄛˊ
㶟水 ㄌㄟˊ ㄕㄨㄟˇ
䀇子 gu3 zi5
䈾箕 shao1 ji1
䍪羯 wa4 jie2
䫄外 chua4 wai4
䰐鬖 lan2 san1
䰖兒 zuan3 er1
䰰䰰 ru2 ru2示例Bash命令(macOS):
sed -i '' -f ./CONV-HYPY2BPMF.SED SAMPLE_INPUT.txt示例sed脚本:https://github.com/ShikiSuen/vchewing-lingual-data/blob/main/utilities/CONV-HYPY2BPMF.SED
期望产出:
鸞膠續斷 ㄌㄨㄢˊ ㄐㄧㄠ ㄒㄩˋ ㄉㄨㄢˋ
鸞駕 ㄌㄨㄢˊ ㄐㄧㄚˋ
鸞儔鳳侶 ㄌㄨㄢˊ ㄔㄡˊ ㄈㄥˋ ㄌㄩˇ
鸞輿 ㄌㄨㄢˊ ㄩˊ
鸞鵠停峙 ㄌㄨㄢˊ ㄏㄨˊ ㄊㄧㄥˊ ㄓˋ
鸞飄鳳泊 ㄌㄨㄢˊ ㄆㄧㄠ ㄈㄥˋ ㄅㄛˊ
鸞鶴 ㄌㄨㄢˊ ㄏㄜˋ
鸞鑑 ㄌㄨㄢˊ ㄐㄧㄢˋ
灩澦堆 ㄧㄢˋ ㄩˋ ㄉㄨㄟ
灩灩 ㄧㄢˋ ㄧㄢˋ
籲天 ㄩˋ ㄊㄧㄢ
籲求 ㄩˋ ㄑㄧㄡˊ
籲請 ㄩˋ ㄑㄧㄥˇ
麤服亂頭 ㄘㄨ ㄈㄨˊ ㄌㄨㄢˋ ㄊㄡˊ
麤疏 ㄘㄨ ㄕㄨ
麤糲 ㄘㄨ ㄌㄧˋ
齾齾 ㄧㄚˋ ㄧㄚˋ
齉鼻兒 ㄋㄤˋ ㄅㄧˊ ㄦ
㔩葉 ㄜˋ ㄧㄝˋ
㟏岈 ㄏㄢ ㄒㄧㄚ
㥄遽 ㄌㄧㄥˊ ㄐㄩˋ
㥏墨 ㄊㄧㄢˇ ㄇㄛˋ
㩳身 ㄙㄨㄥˇ ㄕㄣ
㲯毿 ㄌㄢˊ ㄙㄢ
㶁㶁 ㄍㄨㄛˊ ㄍㄨㄛˊ
㶟水 ㄌㄟˊ ㄕㄨㄟˇ
䀇子 ㄍㄨˇ ㄗ˙
䈾箕 ㄕㄠ ㄐㄧ
䍪羯 ㄨㄚˋ ㄐㄧㄝˊ
䫄外 ㄔㄨㄚˋ ㄨㄞˋ
䰐鬖 ㄌㄢˊ ㄙㄢ
䰖兒 ㄗㄨㄢˇ ㄦ
䰰䰰 ㄖㄨˊ ㄖㄨˊ发布于 2021-12-04 10:01:38
如果文件中行的顺序不重要的话。
# get lines to be translated
grep '[a-z0-9]' input.txt | sed -f CONV-HYPY2BPMF.SED > output.txt
# append lines that are not to be translated
grep -v '[a-z0-9]' input.txt >> output.txthttps://stackoverflow.com/questions/70223703
复制相似问题