Diskuze: standardní UNIXové utility, které málokdo používal a používá nyní

Před týdnem Douglas McIlroy, vývojář UNIXového potrubí a autor pojmu „komponentně orientované programování“, řekl diskutoval o zajímavých a neobvyklých UNIXových programech, které se široce neujaly. Publikace vyvolala aktivní diskusi na Hacker News. Shromáždili jsme to nejzajímavější a budeme rádi, pokud se přidáte k diskusi.

Diskuze: standardní UNIXové utility, které málokdo používal a používá nyní
Foto — Virginia Johnson – Unsplash

Práce s textem

V UNIXových operačních systémech existuje standardní sada nástrojů pro formátování textu. Nástroj typo umožňoval prohlížet dokument na přítomnost překlepů a hapaxů — slov, která se v materiálu vyskytují pouze jednou. Co je zajímavé, pro hledání překlepů program nepoužívá slovníky. Opírá se pouze o informace v souboru a provádí frekvenční analýzu podle trigramů (sekvence tří symbolů). Přitom všechny potřebné počítadla jsou uchovávány v poli 26x26x26. Podle slov Douglase McIlroye, takové množství paměti sotva stačilo pro několik jedno-bajtových počítadel. Proto je z důvodů úspory zapisovali v logaritmické podobě.

Dnes byly tyto nástroje nahrazeny modernějšími a přesnějšími programy pro kontrolu pravopisu založenými na slovnících. Přesto si na tento nástroj stále vzpomínají — před několika lety nadšenec představil realizoval typo na Go. Repozitář se stále aktualizuje.

Další nástroj pro práci s dokumenty z 80. let — balík Writer’s Workbench od Lorindy Cherry a Niny McDonald z Bell Labs. Jeho součástí byly nástroje pro určení částí řeči a stylu dokumentu, hledání tautologií a zbytečně složitých vět. Nástroje byly vyvinuty jako pomůcka pro studenty a v jednu dobu je používali žáci Státní univerzity v Coloradu v USA. Ale na začátku devadesátých let na Writer’s Workbench zapomněli, protože nebyl zahrnut do verze 7 Unix. Tento nástroj však pokračoval v cestě napodobitelů — například, Grammatik pro IBM PC.

V UNIXu jsou také standardní prostředky, které usnadňují práci s formulacemi. Existuje předprocesor jazyka pro formátování matematických výrazů. eqnJe pozoruhodný tím, že pro zobrazení vzorce stačí, aby vývojář popsal jeho jednoduchými slovy a symboly. Klíčová slova umožňují posouvat matematické znaky vertikálně a horizontálně, měnit jejich velikosti a další parametry. Pokud předáte utility řetězec:

sum from { k = 1 } to N { k sup 2 }

Na výstupu bude vygenerován následující vzorec:

Diskuze: standardní UNIXové utility, které málokdo používal a používá nyní

V 80. až 90. letech eqn pomáhal IT specialistům psát manuály k softwaru. Ale později ho nahradil systém LaTeX, který používá dokonce Habr. Ale eqn je první nástroj tohoto typu, který zůstává součástí UNIXových systémů.

Práce se soubory

V tematickém vlákně obyvatelé Hacker News zmínili několik méně používaných utilit pro práci se soubory. Jednou z nich byla comm pro jejich porovnání. To je zjednodušená varianta diff, určená k práci ve skriptech. Jeho napsal sám Richard Stallman spolu s Davidem MacKenziem.

Výstup programu se skládá ze tří sloupců. Do prvního sloupce se dostanou hodnoty, které jsou unikátní pro první soubor, do druhého - unikátní pro druhý soubor. Třetí sloupec zahrnuje společné hodnoty. Pro správnou funkci comm musí být porovnávané dokumenty lexikálně seřazeny. Proto jeden z obyvatel platformy navrhl pracovat s utilitou následujícím způsobem:

comm <(sort fileA.txt) <(sort fileB.txt)

Comm je pohodlné používat pro kontrolu pravopisu. Stačí je porovnat s referenčním dokumentem - slovníkem. Vzhledem k nuancím spojeným s nezbytností třídění souborů existuje názor, že Stallman a MacKenzie napsali svou utilitu výhradně pro tento use case.

Diskuze: standardní UNIXové utility, které málokdo používal a používá nyní
Foto — Marnix Hogendoorn – Unsplash

Také účastník diskuse na HN poznamenal možnosti operátora paste, které byly pro něj nejasné. Umožňuje střídat datové proudy nebo rozdělit jeden proud na dva sloupce při výstupu:

$ paste <( echo -e 'foonbar' ) <( echo -e 'baznqux' )
foo     baz
bar     qux
$ echo -e 'foonbarnbaznqux' | paste - -
foo     bar
baz     qux

Jeden z uživatelů poznamenal, že často pro provádění těchto jednoduchých operací používají ne zrovna optimální řešení: počínajíc fmt, ex a konče mlr s jot a rs.

Jaké standardní možnosti UNIXových operačních systémů se pro vás staly objevem?

O čem píšeme v našem firemním blogu:

Diskuze: standardní UNIXové utility, které málokdo používal a používá nyní Jak se vyvíjel systém doménových jmen: éra ARPANET
Diskuze: standardní UNIXové utility, které málokdo používal a používá nyní Historie systému doménových jmen: první DNS servery
Diskuze: standardní UNIXové utility, které málokdo používal a používá nyní Historie DNS: kdy se doménová jména stala placenými
Diskuze: standardní UNIXové utility, které málokdo používal a používá nyní Historie systému doménových jmen: "války" protokolů

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster