Una settimana fa Douglas McIlroy, sviluppatore della pipeline UNIX e autore del concetto di "programmazione orientata ai componenti", ha parlato di programmi UNIX interessanti e insoliti, che non hanno trovato un ampio utilizzo. La pubblicazione ha avviato una vivace discussione su Hacker News. Abbiamo raccolto le cose più interessanti e saremo felici se parteciperai alla discussione.
Foto — — Unsplash
Lavorare con il testo
Nei sistemi operativi simili a UNIX esiste un insieme standard di strumenti per la formattazione del testo. L'utilità typo consentiva di controllare il documento alla ricerca di errori di battitura e — parole che compaiono nel materiale solo una volta. È interessante notare che per cercare errori di battitura, il programma dizionari. Si basa solo sulle informazioni nel file e svolge un'analisi di frequenza sui trigrammi (una sequenza di tre caratteri). Tutti i contatori necessari in un array 26x26x26. Secondo Douglas McIlroy, quella quantità di memoria era appena sufficiente per alcuni contatori a un byte. Quindi, per motivi di economia, venivano scritti in forma logaritmica.
Oggi typo è stata sostituita da programmi di controllo ortografico più moderni e precisi basati su dizionari. Tuttavia, lo strumento è ancora ricordato: alcuni anni fa un appassionato ha realizzato typo in Go. Il repository è ancora in fase di aggiornamento.
Un altro strumento per lavorare con documenti degli anni '80 è il pacchetto Writer’s Workbench di Lorinda Cherry e Nina McDonald dei Bell Labs. Esso includeva utilizzate Grammatik In UNIX ci sono anche strumenti standard che semplificano il lavoro con le formule. Esiste un preprocessore di linguaggio per la formattazione delle espressioni matematiche
eqn eqn. È notevole perché per visualizzare la formula, lo sviluppatore deve semplicemente descriverla con parole e simboli semplici. Le parole chiave consentono di spostare i segni matematici in verticale e in orizzontale, cambiare le loro dimensioni e altri parametri. Se si passa all'utilità la stringa:
somma da { k = 1 } a N { k sup 2 }Il risultato sarà la seguente formula generata:

Negli anni '80 e '90 eqn i professionisti IT a scrivere manuali per il software. Ma in seguito fu sostituito dal sistema LaTeX, che anche Habr. Ma eqn è il primo strumento di questo tipo, rimasto parte dei sistemi operativi simili a UNIX.
Gestione dei file
In un thread tematico, i residenti di Hacker News hanno segnalato alcune utilità raramente utilizzate per lavorare con file. Una di esse comm per confrontarli. È un'analogia semplificata di , progettata per lavorare negli script. Il stesso Richard Stallman insieme a David MacKenzie.
L'output del programma consiste in tre colonne. Nella prima colonna ci sono i valori unici per il primo file, nella seconda quelli unici per il secondo file. La terza colonna include valori comuni. Per un funzionamento corretto, i documenti confrontati devono essere ordinati lessicalmente. Pertanto, uno dei residenti della piattaforma lavorare con l'utilità nella seguente forma:
comm <(sort fileA.txt) <(sort fileB.txt)Comm è comodo da usare per controllare l'ortografia delle parole. È sufficiente confrontarle con un documento di riferimento-dizionario. Considerando le complessità legate alla necessità di ordinare i file, c'è , che Stallman e MacKenzie hanno scritto la loro utilità esclusivamente per questo caso d'uso.

Foto — — Unsplash
È stato anche un partecipante alla discussione su HN possibilità dell'operatore paste, che non erano chiare per lui. Permette di alternare i flussi di dati o di dividere un flusso in due colonne durante l'output:
$ paste <( echo -e 'foonbar' ) <( echo -e 'baznqux' )
foo baz
bar qux
$ echo -e 'foonbarnbaznqux' | paste - -
foo bar
baz qux
Uno degli utenti , che spesso per eseguire queste semplici operazioni vengono applicate soluzioni non ottimali: a partire da , e terminando con con e .
Quali funzionalità standard dei sistemi operativi simili a UNIX sono state una scoperta per voi?
Di cosa scriviamo nel nostro blog aziendale:
![]()
![]()
![]()
![]()
Fonte: habr.com
