初歩のシェルスクリプトで遊ぶ[ぬかみそフォントの制作サポート(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	113333446	82A6	7961	114239156	98F4	7634	115128322	6EA2	7635	120233576	8328	7962	120539983	9C2F	7636	120728139	6DEB	7637	121636802	8FC2	7638	122821417	53A9	20271	124322082	5642	7642	124739180	990C	13650	125235158	8956	7645	132036838	8FE6	7647	137629273	7259	7965	138324315	5EFB	13673	139824674	6062	20269	140226214	6666	7650	140833883	845B	7652	148138788	9784	7653	148937340	91DC	20290	149432752	7FF0	7656	154532747	7FEB	7657	156924509	5FBD	7658	160531047	7947	7659	162627762	6C72	7966	166028792	7078	20270	166231496	7B08	20263	166621375	537F	7661	169839255	9957	7968	172220677	50C5	7662	173521936	55B0	7664	177227355	6ADB	7665	177923633	5C51	7666	178131874	7C82	20272	179131041	7941	7668	180538553	9699	20273	185020518	5026	7674	186325458	6372	7676	187637749	9375	20276	189235578	8AFA	7678	190924055	5DF7	7679	198126775	6897	20279	199840288	9D60	7683	205429969	7511	20284	205921449	53C9	20281	208527018	698A	7686	213534217	85A9	7688	216539894	9BD6	7689	216837638	9306	7690	217039851	9BAB	20280	217139184	9910	7970	219126451	6753	7695	231328796	707C	7696	231437195	914B	7698	236826991	696F	13460	240734223	85AF	7701	242834295	85F7	7702	242921736	54E8	7703	244538808	9798	7708	250826454	6756	20282	252334645	8755	7709	254435338	8A0A	13860	258836887	9017	7711	259825722	647A	7713	263025776	64B0	7716	270929006	714E	7718	271729053	717D	7972	271831359	7A7F	7973	2720	穿
31661	7BAD	7974	272135438	8A6E	7720	272922092	564C	7721	274736961	9061	7722	276625539	63C3	7975	283936956	905C	7726	284533151	817F	7728	287634552	86F8	7733	290936799	8FBF	7735	2919	辿
27197	6A3D	7738	292427470	6B4E	13915	293335387	8A3B	7740	299028710	7026	7741	299525431	6357	7743	303327084	69CC	7744	304437786	939A	7745	304636795	8FBB	8267	305625402	633A	20286	308637165	912D	7748	310025826	64E2	7749	310528346	6EBA	7750	311220814	514E	13949	313622581	5835	7753	313823648	5C60	7754	314136077	8CED	7756	314828702	701E	7761	324436929	9041	20287	325135598	8B0E	7766	326228760	7058	7767	326326978	6962	7768	326631152	79B0	7769	329529260	724C	7771	334136889	9019	7772	335731204	79E4	7773	335939361	99C1	20288	337931672	7BB8	7775	338421467	53DB	7978	341225405	633D	7778	343235513	8AB9	13495	346027147	6A0B	7780	346531255	7A17	7782	347736924	903C	7783	348935628	8B2C	7785	349535961	8C79	20222	350524287	5EDF	7786	350628693	7015	7787	352026023	65A7	20289	353834109	853D	7789	360330629	77A5	7790	361334065	8511	14013	361431687	7BC7	7979	361923081	5A29	7791	362638829	97AD	20291	362824214	5E96	7792	365734028	84EC	7794	367140018	9C52	7796	374236804	8FC4	7980	375020786	5132	7798	381339173	9905	7799	381931870	7C7E	20293	382229242	723A	20294	383237971	9453	7801	384624840	6108	7802	384829495	7337	14074	386828451	6F23	7809	403429001	7149	7810	403531806	7C3E	20265	403627028	6994	7812	405520900	51A4	7817	422821471	53DF	14111	433221676	54AC	20277	436822066	5632	7821	443322208	56C0	14116	445424472	5F98	13538	479625153	6241	7991	494329409	72E1	20278	562929973	7515	20267	570429990	7526	20283	570730140	75BC	20175	574131432	7AC8	20285	593731605	7B75	20266	597631709	7BDD	7997	600133137	8171	20275	625833368	8258	14196	631033426	8292	20292	632534388	8654	20274	648134563	8703	20296	651034821	8805	20295	653735357	8A1D	20268	666238769	9771	13624	715239449	9A19	8003	724840201	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	66612123	2F5B	7965	138320958	51DE	20300	1435221255	5307	20301	840421857	5561	20308	1439323532	5BEC	20302	843624734	609E	21558	1454125711	646F	20264	502026142	661E	20304	847626231	6677	16889	1460928746	704A	20306	1474429010	7152	21933	1476229794	7462	16977	856131028	7934	17014	1490431328	7A60	20310	1492632092	7D5C	17041	859234819	8803	20312	1510735711	8B7F	21074	8625	譿
36806	8FC6	18759	1518537733	9365	17168	1523838315	95AB	20313	1525838741	9755	20314	869639498	9A4A	22920	1531939725	9B2D	17205	1337263785	F929	20305	848964021	FA15	20307	854264032	FA20	21073	861264036	FA24	18760	863264064	FA40	21072	13369

以上、29文字分になります。
出力のファイル名
OTEdit12-8_Uni_Pr6N_Pro_Char_diff189_29.csv