Š-04: Ţööļƃöẋ üţîļîţîéš
Šüḿḿàŕý
kcat, kgrep, ksed, àñđ kdiff àŕé ƒöŕḿàţ-àŵàŕé ŕéîḿàĝîñîñĝš öƒ cat,
grep, sed, àñđ diff ţĥàţ öþéŕàţé öñ ţĥé ţéẋţ îñšîđé àñý ƒöŕḿàţ kapi
üñđéŕšţàñđš (à Ŵöŕđ đöçüḿéñţ, à ĴŠÖÑ çàţàļöĝ, ẊĻÎƑƑ, Ḿàŕķđöŵñ) ŕàţĥéŕ ţĥàñ öñ
ŕàŵ ƃýţéš. kconv ĥàš ñö çļàššîç àñàļöĝüé: îţ çöñṽéŕţš à đöçüḿéñţ îñţö àñöţĥéŕ
ƒöŕḿàţ ƃý ĥàñđîñĝ ţĥé ƃļöçķš, àñđ ţĥé ŕöļé éàçĥ çàŕŕîéš, ţö à đéŕéñţ ƒöŕḿàţ'š
ŵŕîţéŕ. Àļļ ƒîṽé àŕé ţĥé šàḿé kapi ƃîñàŕý üñđéŕ đéŕéñţ ñàḿéš, đîšþàţçĥéđ
öñ argv[0] ƃüšýƃöẋ-šţýļé. Éàçĥ öþéŕàţéš öṽéŕ öñé šĥàŕéđ ƃļöçķ-ţéẋţ þŕöĵéçţîöñ
àñđ ƒöļļöŵš ţĥé ĝŕéþ-šţýļé éẋîţ-çöđé çöñṽéñţîöñ.
Çöñţéẋţ
Ţĥé ŕéçüŕŕîñĝ ñééđ îš ţö ŕéàđ, šéàŕçĥ, àñđ éđîţ ţĥé ĥüḿàñ-ŕéàđàƃļé çöñţéñţ öƒ
ƒîļéš ţĥàţ ñéîţĥéŕ àñ éđîţöŕ ñöŕ à çļàššîç Üñîẋ ţööļ çàñ ḿéàñîñĝƒüļļý ţöüçĥ. À
Ŵöŕđ đöçüḿéñţ îš à žîþþéđ ẊḾĻ çöñţàîñéŕ. Àñ ẊĻÎƑƑ ƒîļé îñţéŕļéàṽéš šöüŕçé àñđ
ţàŕĝéţ îñšîđé ḿàŕķüþ. À ĴŠÖÑ çàţàļöĝ ƃüŕîéš šţŕîñĝš àḿöñĝ ķéýš àñđ šţŕüçţüŕé.
Ŕüññîñĝ grep öñ ţĥöšé ƃýţé šţŕéàḿš ḿàţçĥéš ḿàŕķüþ àñđ ḿîššéš çöñţéñţ šþļîţ
àçŕöšš ŕüñš; ŕüññîñĝ sed öñ ţĥéḿ çöŕŕüþţš šţŕüçţüŕé.
kapi àļŕéàđý ĥàš ţĥé ḿàçĥîñéŕý ţö đö ţĥîš çöŕŕéçţļý: ƒöŕḿàţ đéţéçţîöñ, ŕéàđéŕš ţĥàţ ýîéļđ ƃļöçķš, ŵŕîţéŕš ţĥàţ ŕéçöñšţŕüçţ šţŕüçţüŕé ƒàîţĥƒüļļý ţĥŕöüĝĥ ţĥé šķéļéţöñ šţöŕé (É-02). Ţĥé ţööļƃöẋ éẋþöšéš ţĥàţ ḿàçĥîñéŕý ƃéĥîñđ àñ îñţéŕƒàçé éñĝîñééŕš àļŕéàđý ĥàṽé îñ ḿüšçļé ḿéḿöŕý.
Ţŵö ĝöàļš šĥàþéđ îţ. Žéŕö ḿàŕĝîñàļ ƒööţþŕîñţ: ţĥéšé ḿüšţ ñöţ ƃé ḿöŕé ƃîñàŕîéš
ţö ƃüîļđ, šîĝñ, àñđ đîšţŕîƃüţé. Ƒîđéļîţý ţö ţĥé çļàššîçš: ţĥé öþţîöñ šüŕƒàçé
àñđ ţĥé éẋîţ-çöđé ƃéĥàṽîöüŕ šĥöüļđ ƃé ŵĥàţ à grep öŕ sed üšéŕ éẋþéçţš,
îñçļüđîñĝ ţĥé šĥöŕţĥàñđ ļéţţéŕš ţĥàţ à ÇĻÎ'š ĝļöƃàļ ƒļàĝš ŵöüļđ öţĥéŕŵîšé šĥàđöŵ.
Đéçîšîöñ
Ḿüļţî-çàļļ đîšþàţçĥ
Ţĥé çöḿḿàñđš ļîṽé îñ ţĥé šĥàŕéđ ÇĻÎ ƃàšé (cli/toolbox*.go) àñđ àŕé ƃüîļţ îñţö
kapi. Ţĥéý àŕé ŕéàçĥàƃļé ţŵö ŵàýš.
Àš ḿüļţî-çàļļ ñàḿéš. Ţĥé ƃüîļđ àñđ ţĥé Ĥöḿéƃŕéŵ ƒöŕḿüļà çŕéàţé kgrep,
ksed, kcat, kconv, àñđ kdiff àš šýḿļîñķš ţö kapi. Àţ šţàŕţüþ
cli.BusyboxRoot(app, os.Args[0]) ñöŕḿàļîšéš ţĥé þŕöĝŕàḿ ñàḿé, šţŕîþþîñĝ àñý
.exe, àñđ öñ à ḿàţçĥ ŕéţüŕñš à šţàñđàļöñé ŕööţ ƒöŕ ţĥàţ üţîļîţý îñšţéàđ öƒ
ţĥé ƒüļļ kapi çöḿḿàñđ ţŕéé. Ţĥé šţàñđàļöñé ŕööţ öŵñš ţĥé àþþļîçàţîöñ ļîƒéçýçļé
(çöñƒîĝ ļöàđ, îñîţ, šĥüţđöŵñ) šö ţĥé üţîļîţý ƃéĥàṽéš îđéñţîçàļļý ĥöŵéṽéŕ îţ ŵàš
ļàüñçĥéđ.
Àš ĥîđđéñ kapi šüƃçöḿḿàñđš. kapi kgrep, kapi ksed, kapi kcat,
kapi kconv, àñđ kapi kdiff àŕé ţĥîñ þŕöẋîéš ŵîţĥ DisableFlagParsing šéţ, šö
kapi'š þéŕšîšţéñţ ƒļàĝš àŕé ñöţ ḿéŕĝéđ îñţö ţĥéḿ. Éàçĥ þŕöẋý ĥàñđš îţš ŕàŵ
àŕĝüḿéñţ ļîšţ ţö ţĥé ṽéŕý šàḿé šţàñđàļöñé çöḿḿàñđ ţĥé šýḿļîñķ ŕüñš. Ţĥéý çàŕŕý
ţĥé ķ-ñàḿéš ṽéŕƃàţîḿ, öñé šþéļļîñĝ éṽéŕýŵĥéŕé, ŵĥîçĥ àļšö ķééþš éṽéŕý ƃàŕé ṽéŕƃ
ƒŕéé ƒöŕ šöḿéţĥîñĝ éļšé.
DisableFlagParsing îš ŵĥàţ ļéţš ţĥé üţîļîţîéš ķééþ ţĥé çļàššîç öþţîöñ šüŕƒàçé.
Ŵîţĥöüţ îţ, kapi'š ĝļöƃàļ -v / -c / -q ŵöüļđ šĥàđöŵ ţĥé ţööļƃöẋ
šĥöŕţĥàñđš. Îñ šţàñđàļöñé ƒöŕḿ ţĥé ƃüšýƃöẋ ŕööţ ñéṽéŕ îñĥéŕîţš ţĥöšé ƒļàĝš àţ
àļļ, šö ţĥé šàḿé ļéţţéŕš àŕé ƒŕéé ţö đéƒîñé. Ţĥé þŕöẋîéš àŕé ĥîđđéñ ƒŕöḿ
kapi --help, ŵĥîçĥ šţééŕš üšéŕš ţö ţĥé đéđîçàţéđ ñàḿéš.
Öñé ƃļöçķ-ţéẋţ þŕöĵéçţîöñ
Éṽéŕý üţîļîţý ŵöŕķš öṽéŕ ţĥé šàḿé þŕöĵéçţîöñ: šţŕéàḿ ţĥé đöçüḿéñţ ţĥŕöüĝĥ îţš ƒöŕḿàţ ŕéàđéŕ, ţàķé éàçĥ ƃļöçķ þàŕţ îñ đöçüḿéñţ öŕđéŕ, àçţ öñ îţš ţéẋţ. Ţĥîš îš ţĥé šîñĝļé þļàçé ţĥé ţööļƃöẋ đéçîđéš ŵĥàţ "ţĥé ţéẋţ" öƒ à ƒîļé îš.
Ţĥé þŕöĵéçţîöñ îš đéƒîñéđ öñçé àñđ šĥàŕéđ, šö ŵĥàţ çöüñţš àš ţĥé ţéẋţ öƒ à ƒîļé îš ţĥé šàḿé ƒöŕ éṽéŕý üţîļîţý àñđ ḿàţçĥéš ţĥé ŕéšţ öƒ ţĥé þîþéļîñé.
Ƒöŕḿàţ ŕéšöļüţîöñ. Àñ éẋþļîçîţ --format / -f ŵîñš; öţĥéŕŵîšé ţĥé
ƒŕàḿéŵöŕķ'š çàñöñîçàļ đéţéçţîöñ çàšçàđé ŕüñš (éẋţéñšîöñ, ţĥéñ çöñţàîñéŕ-àŵàŕé
çöñţéñţ šñîñĝ), ƒàļļîñĝ ƃàçķ ţö þļàîñţéẋţ. Šţàñđàŕđ îñþüţ çàŕŕîéš ñö üšàƃļé
þàţĥ, šö îţš đéţéçţîöñ îš þüŕéļý çöñţéñţ-ƃàšéđ ţĥŕöüĝĥ ţĥé šàḿé đéţéçţöŕ: à þîþéđ
Ŵöŕđ đöçüḿéñţ öŕ ĴŠÖÑ çàţàļöĝ îš šţîļļ ŕéçöĝñîšéđ.
Ţĥé ƃîñàŕý ĝüàŕđ. Ţĥé þļàîñţéẋţ ƒàļļƃàçķ îš ŵĥàţ ḿàķéš éẋţéñšîöñļéšš þŕöšé
ŵöŕķ, àñđ îţ îš àļšö ŵĥàţ ŵöüļđ ḿàķé kcat ~/Downloads/* þŕîñţ à đîšķ îḿàĝé. Šö
ţĥé ƒàļļƃàçķ îš ĝàţéđ: îñþüţ ţĥàţ ñö ƒöŕḿàţ çļàîḿéđ àñđ ŵĥöšé ƃýţéš àŕé ƃîñàŕý
ƒàîļš ŵîţĥ à đéđîçàţéđ éŕŕöŕ, ŵĥîçĥ éàçĥ üţîļîţý ŕéþöŕţš þéŕ ƒîļé àñđ ţĥéñ
çàŕŕîéš öñ ƒŕöḿ. Ţĥé ŕüļé îš ĝîţ'š (à ÑÜĻ ƃýţé îñ ţĥé ƒîŕšţ 8000 ƃýţéš),
éẋéḿþţîñĝ ţĥé Üñîçöđé ƃýţé-öŕđéŕ ḿàŕķš, šîñçé ÜŢƑ-16 àñđ ÜŢƑ-32 ţéẋţ îš ƒüļļ öƒ
ÑÜĻ ƃýţéš àñđ àññöüñçéš îţšéļƒ. Ţĥé ĝüàŕđ šîţš îñ ţĥé öñé ƒöŕḿàţ-ŕéšöļüţîöñ
ĥéļþéŕ, šö éṽéŕý üţîļîţý îñĥéŕîţš îţ. Îţ çàññöţ ƒîŕé ƒöŕ à ƒöŕḿàţ kapi
üñđéŕšţàñđš, ƃéçàüšé đéţéçţîöñ àļŕéàđý çļàîḿéđ ţĥöšé, àñđ -f îš ţĥé éšçàþé
ĥàţçĥ ƃéçàüšé îţ šĥöŕţ-çîŕçüîţš đéţéçţîöñ éñţîŕéļý.
Ŕéàđ þàţĥ (kcat, kgrep). Ţĥé šţŕéàḿ ĥéļþéŕ öþéñš ţĥé îñþüţ, đéţéçţš ţĥé
ƒöŕḿàţ, àñđ çàļļš ƃàçķ ƒöŕ éàçĥ ƃļöçķ îñ öŕđéŕ. kcat þŕîñţš éàçĥ ƃļöçķ'š šöüŕçé
ţéẋţ, öŕ à --target LOCALE ţŕàñšļàţîöñ, öñé ƃļöçķ þéŕ ļîñé; kgrep ḿàţçĥéš
éàçĥ ƃļöçķ'š ţéẋţ àĝàîñšţ ţĥé þàţţéŕñ. Ḿàŕķüþ àñđ ñöñ-ţŕàñšļàţàƃļé šţŕüçţüŕé
ñéṽéŕ ŕéàçĥ ţĥé þŕöĵéçţîöñ.
Éđîţ þàţĥ (ksed). Ţĥé đöçüḿéñţ îš ŕéàđ, ţĥé šüƃšţîţüţîöñ ţööļ îš àþþļîéđ ţö
éṽéŕý þàŕţ, àñđ ţĥé ŕéçöñšţŕüçţéđ đöçüḿéñţ îš ŵŕîţţéñ ƃàçķ îñ ţĥé šàḿé ƒöŕḿàţ.
Ţĥé šķéļéţöñ šţöŕé îš ŵîŕéđ ƃéţŵééñ ŕéàđéŕ àñđ ŵŕîţéŕ ŵĥéñ ƃöţĥ šüþþöŕţ îţ, šö à
ƒàîţĥƒüļ ƒöŕḿàţ ŕöüñđ-ţŕîþš îţš šţŕüçţüŕé ŵĥîļé öñļý ţĥé éđîţéđ ţéẋţ çĥàñĝéš.
Éđîţš ţàŕĝéţ ţĥé šöüŕçé üñļéšš --target LOCALE šéļéçţš à ţŕàñšļàţîöñ. Îñ-þļàçé
éđîţîñĝ ŕéǫüîŕéš à ƒîļé àŕĝüḿéñţ àñđ ŕéƒüšéš šţđîñ. À ŕéàđ-öñļý ƒöŕḿàţ, öñé ŵîţĥ
ñö ŵŕîţéŕ, ŕéţüŕñš àñ àçţîöñàƃļé éŕŕöŕ þöîñţîñĝ àţ kcat.
Çöñṽéŕţ þàţĥ (kconv). Ţĥé îñþüţ îš ŕéàđ àñđ ŵŕîţţéñ ţĥŕöüĝĥ à đéŕéñţ
ƒöŕḿàţ'š ŵŕîţéŕ, çĥöšéñ ƒŕöḿ --to (à ƒöŕḿàţ îđ öŕ àñ éẋţéñšîöñ) öŕ îñƒéŕŕéđ
ƒŕöḿ ţĥé -o éẋţéñšîöñ. Ţĥé šķéļéţöñ šţöŕé àñđ ţĥé šöüŕçé ƃýţéš àŕé ŵîŕéđ ţö ţĥé
ŵŕîţéŕ öñļý ŵĥéñ ţĥé ŕéàđéŕ àñđ ŵŕîţéŕ àŕé ţĥé šàḿé ƒöŕḿàţ: à šàḿé-ƒöŕḿàţ
çöñṽéŕšîöñ ŕöüñđ-ţŕîþš ƒàîţĥƒüļļý ţĥŕöüĝĥ ţĥé šķéļéţöñ, ŵĥîļé à çŕöšš-ƒöŕḿàţ öñé
ŕéçöñšţŕüçţš ƒŕöḿ ţĥé çöñţéñţ ḿöđéļ àñđ ţĥé ƃļöçķ ŕöļéš, šö ţĥé šöüŕçé'š ƒöŕéîĝñ
ƃýţé šķéļéţöñ îš ñéṽéŕ éḿîţţéđ. Ţĥîš îš ţĥé šàḿé ƒöŕḿàţ-ḿàţçĥ ĝüàŕđ ţĥé ƒîļé
ŕüññéŕ àþþļîéš.
Çöḿþàŕé þàţĥ (kdiff). Ţŵö îñþüţš àŕé þŕöĵéçţéđ ţö ƃļöçķ ţéẋţ àñđ ţĥé
ƃļöçķš àŕé àļîĝñéđ, ñöţ ţĥé ļîñéš, šö šţŕüçţüŕàļ ñöîšé (à ŕé-žîþþéđ
đöçüḿéñţ, à ŕéƒļöŵéđ çöñţàîñéŕ, à ŕéöŕđéŕéđ çàţàļöĝ) ñéṽéŕ ŕéĝîšţéŕš àš à đ.
Àļîĝñḿéñţ îš çĥöšéñ þéŕ þàîŕ. Ķéýéđ šîđéš, ŵĥöšé ƃļöçķš çàŕŕý šţàƃļé šéḿàñţîç
ķéýš šüçĥ àš à ĴŠÖÑ ķéý þàţĥ öŕ àñ ẊĻÎƑƑ üñîţ îđ, àļîĝñ ƃý ķéý, šö àđđéđ,
ŕéḿöṽéđ, çĥàñĝéđ, àñđ ŕéöŕđéŕéđ ķéýš ƒàļļ öüţ đîŕéçţļý (à ŕéöŕđéŕ îš ŕéþöŕţéđ àš
ḿöṽéđ, ṽîà à ļöñĝéšţ-çöḿḿöñ-šüƃšéǫüéñçé þàšš öṽéŕ ţĥé šĥàŕéđ ķéýš' öŕđéŕ).
Þöšîţîöñàļ šîđéš, ŵĥöšé îđš ḿéŕéļý éñçöđé đöçüḿéñţ öŕđéŕ, àļîĝñ ƃý àñ ĻÇŠ
öṽéŕ ţĥé ƃļöçķ ţéẋţ, šö àñ îñšéŕţéđ þàŕàĝŕàþĥ îš öñé àđđéđ ƃļöçķ ŕàţĥéŕ ţĥàñ à
çàšçàđé öƒ çĥàñĝéš. --by id|content öṽéŕŕîđéš ţĥé ĥéüŕîšţîç; ţĥé ĻÇŠ ţàƃļé îš
çàþþéđ, ŵîţĥ à þöšîţîöñàļ ƒàļļƃàçķ ţĥàţ îš ļöĝĝéđ ŕàţĥéŕ ţĥàñ šîļéñţ. À šîñĝļé
îñþüţ þļüš --target LOCALE šŵîţçĥéš ţö çöṽéŕàĝé ḿöđé, šöüŕçé àĝàîñšţ
ţŕàñšļàţîöñ ŵîţĥîñ öñé ƒîļé, ŕéþöŕţîñĝ üñţŕàñšļàţéđ àñđ šöüŕçé-îđéñţîçàļ ƃļöçķš.
kdiff ŕéàđš öñļý; îţ ñéṽéŕ ŵŕîţéš à đöçüḿéñţ ƃàçķ.
Ƃéçàüšé ţĥé þŕöĵéçţîöñ îš ţĥé ţŕàñšļàţàƃļé ƃļöçķš, ţĥé üţîļîţîéš îñĥéŕîţ ţĥé çöñţéñţ ḿöđéļ'š ñöţîöñ öƒ ŵĥàţ îš ţŕàñšļàţàƃļé (Ƒ-02) ŕàţĥéŕ ţĥàñ ŕé-đéŕîṽîñĝ öñé.
Ŵĥîçĥ ṽàļîđ çöñṽéŕšîöñ ţàŕĝéţš éẋîšţ
À çŕöšš-ƒöŕḿàţ çöñṽéŕšîöñ ŕéçöñšţŕüçţš ţĥé ţàŕĝéţ ƒŕöḿ ţĥé çöñţéñţ ḿöđéļ, ñéṽéŕ
ƒŕöḿ à ƒöŕéîĝñ šķéļéţöñ. Šö ţĥé ṽàļîđ --to ţàŕĝéţš àŕé éẋàçţļý ţĥé
ĝéñéŕàţîṽé, ñöñ-îñţéŕçĥàñĝé ŵŕîţéŕš, ţĥé đéçļàŕéđ ŵŕîţéŕ çàþàƃîļîţîéš îñ
É-02. Šķéļéţöñ-ƃöüñđ ƒöŕḿàţš (Ŵöŕđ,
ÞöŵéŕÞöîñţ, ÖĐƑ, ÎĐḾĻ, ÉÞÜƂ) çàñ ƃé çöñṽéŕţéđ ƒŕöḿ ƃüţ ñöţ ţö. Ƃîļîñĝüàļ
îñţéŕçĥàñĝé ƒöŕḿàţš àŕé ŕéàçĥéđ ţĥŕöüĝĥ kapi extract àñđ kapi merge
(Ḿ-01), ñöţ ţĥŕöüĝĥ çöñṽéŕšîöñ.
kapi formats ŕéþöŕţš ƃöţĥ çàþàƃîļîţîéš þéŕ
ƒöŕḿàţ, ŕéšöļṽéđ đéçļàŕàţîṽéļý ŵîţĥöüţ ļöàđîñĝ à þļüĝîñ.
Ƒļàĝ šüŕƒàçé
Éàçĥ üţîļîţý çàŕŕîéš îţš çļàššîç öþţîöñ šüŕƒàçé þļüš à ƒéŵ kapi-àŵàŕé àđđîţîöñš.
Çöḿḿöñ ţö àļļ: --target LOCALE (öþéŕàţé öñ à ţŕàñšļàţîöñ îñšţéàđ öƒ ţĥé
šöüŕçé) àñđ --format / -f.
kgrep:-i,-v,-c,-n,-o,-l/-L,-w,-F,-r,-H/--no-filename, ŕéþéàţàƃļé-e,-q, þļüš--coloràñđ--json.ksed: ŕéþéàţàƃļé-e(s/regexp/replacement/flags),-iŵîţĥ àñ öþţîöñàļ àţţàçĥéđ ƃàçķüþ šüƒƒîẋ, àñđ-Rţö ŕéçüŕšé. Ţĥé šçŕîþţ šüþþöŕţš ƃàçķŕéƒéŕéñçéš, ţĥégàñđiƒļàĝš, àñđ àñý šîñĝļé-ƃýţé đéļîḿîţéŕ. šéđ'š àţţàçĥéđ-šüƒƒîẋ ƒöŕḿ (-i.bak) îš ñöŕḿàļîšéđ ƃéƒöŕé đîšþàţçĥ.kcat:-n,--id(þŕéƒîẋ éàçĥ ƃļöçķ ŵîţĥ îţš šöüŕçé îđ),-r, àñđ--json.kdiff:--by auto|id|content,-q/--brief,--stat,--color, àñđ--json. Îţ ţàķéš öñé öŕ ţŵöFILEàŕĝüḿéñţš ŕàţĥéŕ ţĥàñ à ĝļöƃ, àñđ ñéṽéŕ éđîţš îñ þļàçé.kconv:-t/--to FORMAT,-o/--output PATH,-r, àñđ--timing.
Ŕéçüŕšîöñ îš -R öñ ksed àñđ -r éṽéŕýŵĥéŕé éļšé. Ţĥàţ îš ƒîđéļîţý ţö ţĥé
çļàššîçš ŵîññîñĝ öṽéŕ îñţéŕñàļ üñîƒöŕḿîţý: šéđ'š -r îš --regexp-extended, àñđ
ţàķîñĝ ţĥàţ ļéţţéŕ ŵöüļđ šîļéñţļý ŕéŵŕîţé à ŵĥöļé ţŕéé ƒöŕ šöḿéöñé ŵĥö àšķéđ ƒöŕ
à ŕéĝéẋþ đîàļéçţ. -r îš ļéƒţ üñƃöüñđ öñ ksed, šö ţýþîñĝ îţ îš àñ éŕŕöŕ ŕàţĥéŕ
ţĥàñ à šüŕþŕîšé.
kconv'š -o ƃéçöḿéš à ƃàţçĥ ŵĥéñ îţ ñàḿéš à đîŕéçţöŕý: à ţŕàîļîñĝ
šéþàŕàţöŕ, öŕ à þàţĥ ţĥàţ àļŕéàđý îš öñé. Éàçĥ îñþüţ þŕöđüçéš öñé öüţþüţ ƒîļé
ñàḿéđ àƒţéŕ îţš šţéḿ ŵîţĥ ţĥé ţàŕĝéţ éẋţéñšîöñ, àñđ ţĥé îñþüţ šüƃ-ţŕéé îš
ḿîŕŕöŕéđ ŕéļàţîṽé ţö ţĥé đééþéšţ đîŕéçţöŕý éṽéŕý îñþüţ šĥàŕéš. Ţĥàţ ŕööţ îš
çöḿþüţéđ ƒŕöḿ ţĥé ŕéšöļṽéđ îñþüţš ŕàţĥéŕ ţĥàñ ţĥé àŕĝüḿéñţš, šö à
šĥéļļ-éẋþàñđéđ ĝļöƃ àñđ à kapi-éẋþàñđéđ öñé ƃéĥàṽé àļîķé, àñđ šàḿé-ñàḿéđ ƒîļéš îñ
šîƃļîñĝ đîŕéçţöŕîéš çàññöţ çöļļîđé. Ţŵö îñþüţš ŕéšöļṽîñĝ ţö öñé öüţþüţ, àñđ àñ
öüţþüţ ţĥàţ ŵöüļđ ļàñđ öñ îţš öŵñ îñþüţ, àŕé ŕéþöŕţéđ àñđ šķîþþéđ, ñéṽéŕ
šîļéñţļý öṽéŕŵŕîţţéñ.
Ŵîţĥ ñö FILE, öŕ ŵĥéñ FILE îš -, šţàñđàŕđ îñþüţ îš ŕéàđ. À ţéŕḿîñàļ šţđîñ
ŕéàđ îš ŕàçéđ àĝàîñšţ ţĥé çöḿḿàñđ çöñţéẋţ, šö àñ îñţéŕŕüþţ (ŵĥîçĥ ţĥé ÇĻÎ ţŕàþš
àš çàñçéļļàţîöñ ŕàţĥéŕ ţĥàñ ļéţţîñĝ ţĥé šîĝñàļ ķîļļ ţĥé þŕöçéšš) ŕéţüŕñš çļéàñļý
ŕàţĥéŕ ţĥàñ ĥàñĝîñĝ.
Éẋîţ çöđéš ƒöļļöŵ ĝŕéþ
Ţĥé üţîļîţîéš ŕéþöŕţ à ŕéšüļţ àš à šţàţüš, ñöţ àš àñ éŕŕöŕ. kgrep éẋîţš 0
ŵĥéñ àñý ƃļöçķ ḿàţçĥéđ, 1 ŵĥéñ ñöñé đîđ, àñđ 2 öñ öþéŕàţîöñàļ ţŕöüƃļé. Ţö
éẋþŕéšš "ñö ḿàţçĥ" àš à šţàţüš ŵîţĥöüţ þŕîñţîñĝ àñ éŕŕöŕ ļîñé, à ñö-ḿàţçĥ ŕéţüŕñš
ţĥé ErrSilentExit šéñţîñéļ: ţĥé ÇĻÎ ŕüññéŕ ḿàþš îţ ţö à ñöñ-žéŕö éẋîţ ƃüţ
šüþþŕéššéš ţĥé ḿéššàĝé, ƃéçàüšé ţĥé çöḿḿàñđ ĥàš àļŕéàđý ŵŕîţţéñ, öŕ đéļîƃéŕàţéļý
ŵîţĥĥéļđ, îţš öŵñ öüţþüţ.
kdiff ŕéüšéš ţĥé šàḿé šþîñé ƒöŕ ţĥé çļàššîç diff çöñṽéñţîöñ: 0 ŵĥéñ ţĥé
îñþüţš àŕé éǫüîṽàļéñţ, 1 ŵĥéñ ţĥéý đéŕ (öŕ, îñ çöṽéŕàĝé ḿöđé, ŵĥéñ
ţŕàñšļàţîöñ ŵöŕķ îš þéñđîñĝ), 2 öñ ţŕöüƃļé. Îţ þŕîñţš ţĥé đ ƒîŕšţ, ţĥéñ
ŕéţüŕñš ţĥé šéñţîñéļ, šö ţĥéŕé îš ñö šþüŕîöüš éŕŕöŕ ļîñé àƒţéŕ à ļéĝîţîḿàţé
ŕéšüļţ.
Ţĥîš îš ţĥé šàḿé éẋîţ-çöđé šþîñé üšéđ àçŕöšš ţĥé ÇĻÎ (Š-01): šüççéšš, éŕŕöŕ, üšàĝé, ĝàţé, àñđ çàñçéļļàţîöñ ḿàþþéđ ţö ţĥé šîĝñàļ çöđé, šö šçŕîþţš àñđ àĝéñţ šķîļļš çàñ ƃŕàñçĥ öñ ţööļƃöẋ ŕéšüļţš ŕéļîàƃļý.
Çöñšéǫüéñçéš
- Éñĝîñééŕš ĝŕéþ àñđ šéđ ţĥé çöñţéñţ öƒ ƒöŕḿàţš ţĥéîŕ çļàššîç ţööļš çàñ öñļý šéé àš ƃýţéš, ŵîţĥ ñö ñéŵ ƃîñàŕý ţö îñšţàļļ.
- Ŕéüšîñĝ ţĥé ŕéàđéŕš, ŵŕîţéŕš, àñđ šķéļéţöñ šţöŕé ḿéàñš à ƒàîţĥƒüļ ƒöŕḿàţ ŕöüñđ-ţŕîþš îţš šţŕüçţüŕé öñ éđîţ àñđ öñļý ţĥé þŕöšé çĥàñĝéš.
kconvŕéüšéš ţĥàţ šàḿé ḿàçĥîñéŕý ţö çöñṽéŕţ ƃéţŵééñ ƒöŕḿàţš: à šàḿé-ƒöŕḿàţ çöñṽéŕšîöñ ŕöüñđ-ţŕîþš ƒàîţĥƒüļļý, ŵĥîļé à çŕöšš-ƒöŕḿàţ öñé þŕöĵéçţš ţĥé đöçüḿéñţ'š šţŕüçţüŕé ţĥŕöüĝĥ ƃļöçķ ŕöļéš îñţö ţĥé ţàŕĝéţ, šö à Ŵöŕđ đöçüḿéñţ ƃéçöḿéš çļéàñ Ḿàŕķđöŵñ öŕ ĤŢḾĻ ŵîţĥöüţ îţš šöüŕçé þàçķàĝîñĝ.kdiffçöḿþàŕéš çöñţéñţ ŕàţĥéŕ ţĥàñ ƃýţéš: ŕé-šàṽîñĝ à đöçüḿéñţ öŕ ŕéöŕđéŕîñĝ à çàţàļöĝ þŕöđüçéš ñö đ, öñļý ĝéñüîñé þŕöšé çĥàñĝéš đö, àñđ ţĥé ƃļöçķ-šĥàþéđ çĥàñĝé šéţ îš éẋàçţļý ŵĥàţ à ŕé-ţŕàñšļàţîöñ þàšš çöñšüḿéš.- Ţĥé þŕöĵéçţîöñ îš đéƒîñéđ öñçé, šö ŵĥàţ çöüñţš àš "ţĥé ţéẋţ" îš çöñšîšţéñţ àçŕöšš ţĥé üţîļîţîéš àñđ ḿàţçĥéš ţĥé ŕéšţ öƒ ţĥé þîþéļîñé.
- Ţĥé ĝŕéþ-šţýļé éẋîţ çöđéš ļéţ šçŕîþţš đîšţîñĝüîšĥ "ñö ḿàţçĥ" ƒŕöḿ "éŕŕöŕ" ŵîţĥöüţ þàŕšîñĝ öüţþüţ, ţĥé šàḿé þŕöþéŕţý àñ àĝéñţ šķîļļ ŕéļîéš öñ (Š-03).
Ŕéļàţéđ
- Ƒ-02: Ţĥé çöñţéñţ ḿöđéļ: ƃļöçķš, ţĥé üñîţ ţĥé ţööļƃöẋ þŕöĵéçţš ţö
- É-02: Ţĥé ƒöŕḿàţ šýšţéḿ: ŕéàđéŕš, ŵŕîţéŕš, ŵŕîţéŕ öüţþüţ ḿöđéš, àñđ ţĥé šķéļéţöñ šţöŕé
- Š-01: Ţĥé kapi ÇĻÎ: ţĥé ÇĻÎ ƃàšé ţĥé üţîļîţîéš ļîṽé îñ àñđ ţĥé éẋîţ-çöđé çöñţŕàçţ ţĥéý éẋţéñđ
- Š-03: Àĝéñţ šüŕƒàçéš: ţĥé šķîļļ ţĥàţ đŕîṽéš ţĥé ţööļƃöẋ, àñđ
kapi applyàš ţĥé ŕéṽîéŵéđ-éđîţ šîƃļîñĝ öƒksed - Ḿ-01: Ƃîļîñĝüàļ îñţéŕöþ: ŵĥéŕé îñţéŕçĥàñĝé ƒöŕḿàţš àŕé ŕéàçĥéđ îñšţéàđ
- ÇĻÎ ţööļš: ţĥé üšéŕ-ƒàçîñĝ ĝüîđé ţö éàçĥ üţîļîţý