初歩のシェルスクリプトで遊ぶ[ぬかみそフォントの制作サポート(3)]
189文字分のcsvデータを更に分類して分割する
先に作成した、CIDに食い違いがある分のcsvファイルを、
ce4ee1eb29a3570c25e7ec6710642888 OTEdit12-8_Uni_Pr6N_Pro_Char_fromAwk.csv ce4ee1eb29a3570c25e7ec6710642888 OTEdit12-8_Uni_Pr6N_Pro_Char_fromDiff.csv
から
OTEdit12-8_Uni_Pr6N_Pro_Char_diff189.csv
にリネームしました。
この189文字分のcsvファイルを、さらに小さく分割していきます。
JIS2004の字形変更分を抜き出す
#!/bin/sh # =============================================================================== # ■ CID90とCID2004の差分から、JIS2004字形変更分168文字を抽出する_ttedit_20210307_02.sh # # # ・input 下記形式のテキストファイルを、このスクリプトの引数1に指定する # unicode(DEC) unicode(HEX) CID2004 CID90 文字 # # # # https://ja.wikipedia.org/wiki/JIS_X_0213 # # 逢芦飴溢茨鰯淫迂厩噂餌襖迦牙廻恢晦蟹葛鞄釜翰翫徽 # 祇汲灸笈卿饗僅喰櫛屑粂祁隙倦捲牽鍵諺巷梗膏鵠甑叉 # 榊薩鯖錆鮫餐杓灼酋楯薯藷哨鞘杖蝕訊逗摺撰煎煽穿箭 # 詮噌遡揃遜腿蛸辿樽歎註瀦捗槌鎚辻挺鄭擢溺兎堵屠賭 # 瀞遁謎灘楢禰牌這秤駁箸叛挽誹樋稗逼謬豹廟瀕斧蔽瞥 # 蔑篇娩鞭庖蓬鱒迄儲餅籾爺鑓愈猷漣煉簾榔屢冤叟咬嘲 # 囀徘扁棘橙狡甕甦疼祟竈筵篝腱艘芒虔蜃蠅訝靄靱騙鴉 # # ・空白を挟む # echo "逢芦飴溢茨鰯淫迂厩噂餌襖迦牙廻恢晦蟹葛鞄釜翰翫徽 # 祇汲灸笈卿饗僅喰櫛屑粂祁隙倦捲牽鍵諺巷梗膏鵠甑叉 # 榊薩鯖錆鮫餐杓灼酋楯薯藷哨鞘杖蝕訊逗摺撰煎煽穿箭 # 詮噌遡揃遜腿蛸辿樽歎註瀦捗槌鎚辻挺鄭擢溺兎堵屠賭 # 瀞遁謎灘楢禰牌這秤駁箸叛挽誹樋稗逼謬豹廟瀕斧蔽瞥 # 蔑篇娩鞭庖蓬鱒迄儲餅籾爺鑓愈猷漣煉簾榔屢冤叟咬嘲 # 囀徘扁棘橙狡甕甦疼祟竈筵篝腱艘芒虔蜃蠅訝靄靱騙鴉" | # grep -o . | tr '\n' ' ' | fmt # # # # # # =============================================================================== # 引数が与えられなかったとき、スクリプトを終了する true ${1:?"引数が空っぽ"} for Char in \ 逢 芦 飴 溢 茨 鰯 淫 迂 厩 噂 餌 襖 迦 牙 廻 恢 晦 蟹 \ 葛 鞄 釜 翰 翫 徽 祇 汲 灸 笈 卿 饗 僅 喰 櫛 屑 粂 祁 \ 隙 倦 捲 牽 鍵 諺 巷 梗 膏 鵠 甑 叉 榊 薩 鯖 錆 鮫 餐 \ 杓 灼 酋 楯 薯 藷 哨 鞘 杖 蝕 訊 逗 摺 撰 煎 煽 穿 箭 \ 詮 噌 遡 揃 遜 腿 蛸 辿 樽 歎 註 瀦 捗 槌 鎚 辻 挺 鄭 \ 擢 溺 兎 堵 屠 賭 瀞 遁 謎 灘 楢 禰 牌 這 秤 駁 箸 叛 \ 挽 誹 樋 稗 逼 謬 豹 廟 瀕 斧 蔽 瞥 蔑 篇 娩 鞭 庖 蓬 \ 鱒 迄 儲 餅 籾 爺 鑓 愈 猷 漣 煉 簾 榔 屢 冤 叟 咬 嘲 \ 囀 徘 扁 棘 橙 狡 甕 甦 疼 祟 竈 筵 篝 腱 艘 芒 虔 蜃 \ 蠅 訝 靄 靱 騙 鴉 do if grep -e "${Char}" "${1}" then true # else printf '\033[7m%s\033[0m\n' "${Char}" 1>&2 fi done
$ ./ttedit_20210307_02.sh ./OTEdit12-8_Uni_Pr6N_Pro_Char_diff189.csv 1>OTEdit12-8_Uni_Pr6N_Pro_Char_diff189_160.csv
189文字のうち、168文字に該当するのは、160文字でした。
OTEdit12-8_Uni_Pr6N_Pro_Char_diff189_160.csv
36898 9022 8266 1133 逢 33446 82A6 7961 1142 芦 39156 98F4 7634 1151 飴 28322 6EA2 7635 1202 溢 33576 8328 7962 1205 茨 39983 9C2F 7636 1207 鰯 28139 6DEB 7637 1216 淫 36802 8FC2 7638 1228 迂 21417 53A9 20271 1243 厩 22082 5642 7642 1247 噂 39180 990C 13650 1252 餌 35158 8956 7645 1320 襖 36838 8FE6 7647 1376 迦 29273 7259 7965 1383 牙 24315 5EFB 13673 1398 廻 24674 6062 20269 1402 恢 26214 6666 7650 1408 晦 33883 845B 7652 1481 葛 38788 9784 7653 1489 鞄 37340 91DC 20290 1494 釜 32752 7FF0 7656 1545 翰 32747 7FEB 7657 1569 翫 24509 5FBD 7658 1605 徽 31047 7947 7659 1626 祇 27762 6C72 7966 1660 汲 28792 7078 20270 1662 灸 31496 7B08 20263 1666 笈 21375 537F 7661 1698 卿 39255 9957 7968 1722 饗 20677 50C5 7662 1735 僅 21936 55B0 7664 1772 喰 27355 6ADB 7665 1779 櫛 23633 5C51 7666 1781 屑 31874 7C82 20272 1791 粂 31041 7941 7668 1805 祁 38553 9699 20273 1850 隙 20518 5026 7674 1863 倦 25458 6372 7676 1876 捲 37749 9375 20276 1892 鍵 35578 8AFA 7678 1909 諺 24055 5DF7 7679 1981 巷 26775 6897 20279 1998 梗 40288 9D60 7683 2054 鵠 29969 7511 20284 2059 甑 21449 53C9 20281 2085 叉 27018 698A 7686 2135 榊 34217 85A9 7688 2165 薩 39894 9BD6 7689 2168 鯖 37638 9306 7690 2170 錆 39851 9BAB 20280 2171 鮫 39184 9910 7970 2191 餐 26451 6753 7695 2313 杓 28796 707C 7696 2314 灼 37195 914B 7698 2368 酋 26991 696F 13460 2407 楯 34223 85AF 7701 2428 薯 34295 85F7 7702 2429 藷 21736 54E8 7703 2445 哨 38808 9798 7708 2508 鞘 26454 6756 20282 2523 杖 34645 8755 7709 2544 蝕 35338 8A0A 13860 2588 訊 36887 9017 7711 2598 逗 25722 647A 7713 2630 摺 25776 64B0 7716 2709 撰 29006 714E 7718 2717 煎 29053 717D 7972 2718 煽 31359 7A7F 7973 2720 穿 31661 7BAD 7974 2721 箭 35438 8A6E 7720 2729 詮 22092 564C 7721 2747 噌 36961 9061 7722 2766 遡 25539 63C3 7975 2839 揃 36956 905C 7726 2845 遜 33151 817F 7728 2876 腿 34552 86F8 7733 2909 蛸 36799 8FBF 7735 2919 辿 27197 6A3D 7738 2924 樽 27470 6B4E 13915 2933 歎 35387 8A3B 7740 2990 註 28710 7026 7741 2995 瀦 25431 6357 7743 3033 捗 27084 69CC 7744 3044 槌 37786 939A 7745 3046 鎚 36795 8FBB 8267 3056 辻 25402 633A 20286 3086 挺 37165 912D 7748 3100 鄭 25826 64E2 7749 3105 擢 28346 6EBA 7750 3112 溺 20814 514E 13949 3136 兎 22581 5835 7753 3138 堵 23648 5C60 7754 3141 屠 36077 8CED 7756 3148 賭 28702 701E 7761 3244 瀞 36929 9041 20287 3251 遁 35598 8B0E 7766 3262 謎 28760 7058 7767 3263 灘 26978 6962 7768 3266 楢 31152 79B0 7769 3295 禰 29260 724C 7771 3341 牌 36889 9019 7772 3357 這 31204 79E4 7773 3359 秤 39361 99C1 20288 3379 駁 31672 7BB8 7775 3384 箸 21467 53DB 7978 3412 叛 25405 633D 7778 3432 挽 35513 8AB9 13495 3460 誹 27147 6A0B 7780 3465 樋 31255 7A17 7782 3477 稗 36924 903C 7783 3489 逼 35628 8B2C 7785 3495 謬 35961 8C79 20222 3505 豹 24287 5EDF 7786 3506 廟 28693 7015 7787 3520 瀕 26023 65A7 20289 3538 斧 34109 853D 7789 3603 蔽 30629 77A5 7790 3613 瞥 34065 8511 14013 3614 蔑 31687 7BC7 7979 3619 篇 23081 5A29 7791 3626 娩 38829 97AD 20291 3628 鞭 24214 5E96 7792 3657 庖 34028 84EC 7794 3671 蓬 40018 9C52 7796 3742 鱒 36804 8FC4 7980 3750 迄 20786 5132 7798 3813 儲 39173 9905 7799 3819 餅 31870 7C7E 20293 3822 籾 29242 723A 20294 3832 爺 37971 9453 7801 3846 鑓 24840 6108 7802 3848 愈 29495 7337 14074 3868 猷 28451 6F23 7809 4034 漣 29001 7149 7810 4035 煉 31806 7C3E 20265 4036 簾 27028 6994 7812 4055 榔 20900 51A4 7817 4228 冤 21471 53DF 14111 4332 叟 21676 54AC 20277 4368 咬 22066 5632 7821 4433 嘲 22208 56C0 14116 4454 囀 24472 5F98 13538 4796 徘 25153 6241 7991 4943 扁 29409 72E1 20278 5629 狡 29973 7515 20267 5704 甕 29990 7526 20283 5707 甦 30140 75BC 20175 5741 疼 31432 7AC8 20285 5937 竈 31605 7B75 20266 5976 筵 31709 7BDD 7997 6001 篝 33137 8171 20275 6258 腱 33368 8258 14196 6310 艘 33426 8292 20292 6325 芒 34388 8654 20274 6481 虔 34563 8703 20296 6510 蜃 34821 8805 20295 6537 蠅 35357 8A1D 20268 6662 訝 38769 9771 13624 7152 靱 39449 9A19 8003 7248 騙 40201 9D09 14272 7362 鴉
字形変更分以外の行を抜き出す
#!/bin/sh # =============================================================================== # ■ CID90とCID2004の差分から、JIS2004字形変更分168文字でない行を抽出する_ttedit_20210307_03.sh # # # ・input 下記形式のテキストファイルを、このスクリプトに標準入力する # unicode(DEC) unicode(HEX) CID2004 CID90 文字 # # # # https://ja.wikipedia.org/wiki/JIS_X_0213 # # 逢芦飴溢茨鰯淫迂厩噂餌襖迦牙廻恢晦蟹葛鞄釜翰翫徽 # 祇汲灸笈卿饗僅喰櫛屑粂祁隙倦捲牽鍵諺巷梗膏鵠甑叉 # 榊薩鯖錆鮫餐杓灼酋楯薯藷哨鞘杖蝕訊逗摺撰煎煽穿箭 # 詮噌遡揃遜腿蛸辿樽歎註瀦捗槌鎚辻挺鄭擢溺兎堵屠賭 # 瀞遁謎灘楢禰牌這秤駁箸叛挽誹樋稗逼謬豹廟瀕斧蔽瞥 # 蔑篇娩鞭庖蓬鱒迄儲餅籾爺鑓愈猷漣煉簾榔屢冤叟咬嘲 # 囀徘扁棘橙狡甕甦疼祟竈筵篝腱艘芒虔蜃蠅訝靄靱騙鴉 # # # =============================================================================== sed -n -e ' # 168文字のうち、どれか一文字でも行に有るなら、出力せずに次の行へすすむ /[逢芦飴溢茨鰯淫迂厩噂餌襖迦牙廻恢晦蟹葛鞄釜翰翫徽祇汲灸笈卿饗僅喰櫛屑粂祁隙倦捲牽鍵諺巷梗膏鵠甑叉榊薩鯖錆鮫餐杓灼酋楯薯藷哨鞘杖蝕訊逗摺撰煎煽穿箭詮噌遡揃遜腿蛸辿樽歎註瀦捗槌鎚辻挺鄭擢溺兎堵屠賭瀞遁謎灘楢禰牌這秤駁箸叛挽誹樋稗逼謬豹廟瀕斧蔽瞥蔑篇娩鞭庖蓬鱒迄儲餅籾爺鑓愈猷漣煉簾榔屢冤叟咬嘲囀徘扁棘橙狡甕甦疼祟竈筵篝腱艘芒虔蜃蠅訝靄靱騙鴉]/{ d } # 行の内容を出力する { p }'
$ cat ./OTEdit12-8_Uni_Pr6N_Pro_Char_diff189.csv | ./ttedit_20210307_03.sh 8741 2225 15489 666 ∥ 12123 2F5B 7965 1383 ⽛ 20958 51DE 20300 14352 凞 21255 5307 20301 8404 匇 21857 5561 20308 14393 啡 23532 5BEC 20302 8436 寬 24734 609E 21558 14541 悞 25711 646F 20264 5020 摯 26142 661E 20304 8476 昞 26231 6677 16889 14609 晷 28746 704A 20306 14744 灊 29010 7152 21933 14762 煒 29794 7462 16977 8561 瑢 31028 7934 17014 14904 礴 31328 7A60 20310 14926 穠 32092 7D5C 17041 8592 絜 34819 8803 20312 15107 蠃 35711 8B7F 21074 8625 譿 36806 8FC6 18759 15185 迆 37733 9365 17168 15238 鍥 38315 95AB 20313 15258 閫 38741 9755 20314 8696 靕 39498 9A4A 22920 15319 驊 39725 9B2D 17205 13372 鬭 63785 F929 20305 8489 朗 64021 FA15 20307 8542 凞 64032 FA20 21073 8612 蘒 64036 FA24 18760 8632 﨤 64064 FA40 21072 13369 懲
以上、29文字分になります。
出力のファイル名
OTEdit12-8_Uni_Pr6N_Pro_Char_diff189_29.csv