Před týdnem Douglas McIlroy, vývojář UNIXového potrubí a autor pojmu „komponentně orientované programování“, 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.
Foto — – 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 — slov, která se v materiálu vyskytují pouze jednou. Co je zajímavé, pro hledání překlepů program 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 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 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í 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 žá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, 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:

V 80. až 90. letech eqn IT specialistům psát manuály k softwaru. Ale později ho nahradil systém LaTeX, který 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 comm pro jejich porovnání. To je zjednodušená varianta , určená k práci ve skriptech. Jeho 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 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 , že Stallman a MacKenzie napsali svou utilitu výhradně pro tento use case.

Foto — – Unsplash
Také účastník diskuse na HN 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ů , že často pro provádění těchto jednoduchých operací používají ne zrovna optimální řešení: počínajíc , a konče s a .
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:
![]()
![]()
![]()
![]()
Zdroj: habr.com
