Een week geleden deelde Douglas McIlroy, ontwikkelaar van de UNIX-pijplijn en auteur van het begrip 'componentgeoriënteerd programmeren', interessante en ongebruikelijke UNIX-programma's die niet wijdverspreid zijn geraakt. De publicatie leidde tot een actieve discussie op Hacker News. We hebben het meest interessante verzameld en hopen dat je deelneemt aan de discussie.
Foto — — Unsplash
Werken met tekst
In UNIX-achtige besturingssystemen zijn er standaardtools voor tekstformattering. De tool typo stond toe om een document op spelfouten te controleren en - woorden die slechts één keer in het materiaal voorkomen. Het is interessant dat het programma voor het vinden van spelfouten woordenboeken. Het is alleen gebaseerd op informatie in het bestand en voert frequentieanalyse uit op trigrammen (reeksen van drie tekens). Al het benodigde tellers in een 26x26x26-array. Volgens Douglas McIlroy was deze hoeveelheid geheugen nauwelijks genoeg voor enkele éénbyte-tellers. Daarom schreven ze ze voor de spaarzaamheid in logaritmische vorm.
Tegenwoordig zijn modernere en nauwkeurigere spellingcontroles op basis van woordenboeken de opvolger van typo. Maar het instrument wordt nog steeds herinnerd - enkele jaren geleden ontwikkelde een enthousiasteling de typo-implementatie in Go. Het repository wordt nog steeds bijgewerkt.
Een ander documentinstrument uit de jaren 80 is het pakket Writer’s Workbench van Lorinda Cherry en Nina McDonald van Bell Labs. Het bevatte gebruikt Grammatik In UNIX zijn er ook standaardtools die het werken met formules vereenvoudigen. Er is een preprocessortaal voor het opmaken van wiskundige uitdrukkingen.
In UNIX zijn er ook standaardtools die het werken met formules vergemakkelijken. Er is een taalpreprocessor voor het opmaken van wiskundige uitdrukkingen. eqnHet is opmerkelijk dat een ontwikkelaar de formule eenvoudigweg kan beschrijven met woorden en symbolen voor de weergave. Sleutelwoorden stellen je in staat om wiskundige tekens verticaal en horizontaal te verschuiven, evenals hun afmetingen en andere parameters aan te passen. Als je de utility de volgende reeks doorgeeft:
som van { k = 1 } tot N { k sup 2 }De volgende formule zal worden gegenereerd:

In de jaren 1980-1990 hielp eqn zelfs Habr. Maar eqn is de eerste tool van dit soort, die een onderdeel blijft van UNIX-achtige besturingssystemen. In een themadraad merkten leden van Hacker News verschillende zelden gebruikte utilities op voor bestandsbehandeling. Een daarvan
Werken met bestanden
comm voor hun vergelijking. Dit is een vereenvoudigde analogon , ontworpen om in scripts te werken. Het is geschreven door Richard Stallman samen met David MacKenzie. De uitvoer van het programma bestaat uit drie kolommen. De eerste kolom bevat waarden die uniek zijn voor het eerste bestand, de tweede – uniek voor het tweede bestand. De derde kolom bevat de gemeenschappelijke waarden. Voor een correcte werking moet comm de vergeleken documenten lexicoisch gesorteerd hebben. Daarom merkte een van de leden van de site op dat
de utility kan worden gebruikt in de volgende vorm: comm <(sort fileA.txt) <(sort fileB.txt)
Comm is gemakkelijk te gebruiken voor het controleren van de spelling van woorden. Het is voldoende om ze te vergelijken met een referentiedocument, zoals een woordenlijst. Gezien de details die samenhangen met de noodzaak om bestanden te sorteren, is er, dat Stallman en MacKenzie hun utility uitsluitend voor deze use case hebben geschreven. Marnix Hogendoorn

Foto — — Unsplash
de mogelijkheden van de operator paste , die voor hem niet vanzelfsprekend waren. Het stelt je in staat om datastromen af te wisselen of één stroom op te splitsen in twee kolommen bij output:$ paste <( echo -e 'foonbar' ) <( echo -e 'baznqux' ) foo baz bar qux $ echo -e 'foonbarnbaznqux' | paste - - foo bar baz qux
merkte
Een van de gebruikers fmt , mlr met en .
Hoe het domeinnaamsysteem zich heeft ontwikkeld: het ARPANET-tijdperk
Waarover we schrijven in onze bedrijfsblog:
![]()
![]()
![]()
![]()
Bron: habr.com
