Slik bruker du fold-kommandoen på Linux

Linux fold-kommandoen bringer uregjerlige utdata til hæl. Les brede tekstbiter, endeløse strenger og uformaterte strømmer ved å kontrollere bredden på utdataene. Lær hvordan.

Hvordan tekstlinjer fungerer i Linux-terminalen

Første regel for Linux-kamp: kjenn fienden din. Så la oss definere det. Hva er egentlig en tekstlinje? Det er en sekvens av tegn – bokstaver, tall, symboler og mellomrom – som avsluttes av en spesiell byte som betyr «start en ny linje.» I Linux og Unix, nylinjetegnet, også kalt linjemating, brukes som indikator på slutten av linjen. Dette er en byte med en verdi på 0x0a in heksadesimal og ti i desimal.

Ulike operativsystemer bruker forskjellige byteverdier for å indikere slutten av en linje. Windows bruker en to-byte-sekvens. I Windows-tekstfiler blir nylinjetegnet umiddelbart etterfulgt av vognretur-karaktersom er 0x0d i heksadesimal og tretten i desimal.

  Slik sletter du en bruker på Linux (og fjerner alle spor)

Begrepene «linefeed» og «carriage return» dateres tilbake til skrivemaskinen. Platen, sylinderen som papiret ble pakket rundt, var montert på en bevegelig vogn. Vognen flyttet én karakters bredde til venstre hver gang du trykker på en tast. For å starte en ny linje, dyttet du på en spak som brakte vognen tilbake til sin opprinnelige posisjon, og som roterte rullen og flyttet papiret oppover i høyden av en linje. Denne handlingen ble kjent som vognretur, og rotasjonen av sylinderen (og fremføringen av papiret) ble kjent som en linjemating.

Spaken ble erstattet av en nøkkel da skrivemaskinen ble elektrifisert. Nøkkelen var merket Carriage Return eller bare retur. Noen tidlige datamaskiner som f.eks BBC Micro brukte fortsatt navnet Return på det vi nå kaller Enter-tasten.

  Hvordan bruke ps-kommandoen til å overvåke Linux-prosesser

Du kan som regel ikke se nylinjetegn. Du kan bare se effekten deres. Nylinjetegnet tvinger programvare som viser eller behandler tekst til å starte en ny linje.

Men hva er problemet med lange linjer?

Tekst med ingen eller svært få nylinjetegn vil være for bred til å leses komfortabelt i terminalvinduet. Det er irriterende, men det lar seg gjøre.

Et mer skadelig problem er å måtte håndtere linjer av en slik lengde at de utgjør et problem for programvaren som må behandle, overføre eller motta teksten. Dette kan være forårsaket av interne bufferlengder eller andre aspekter ved programvaren som du ikke kan justere.

Men det er en løsning på det, kalt fold.

Første trinn med fold

La oss ta en titt på en del av teksten som har veldig, veldig lange linjer. Merk at vi ikke snakker om setninger her. (Selv om teksten kommer fra Herman Melvilles Moby Dick, så vi har det beste fra begge verdener.)

  Hvordan installere JetBrains RubyMine på Linux

En tekstlinje er alt fra siste linjeskifttegn (eller starten på filen hvis det er den første linjen i filen) helt opp til neste linjeskifttegn, uavhengig av hva som står i mellom. Linjen kan inneholde mange setninger. Det kan pakkes rundt i terminalvinduet mange ganger. Men det er fortsatt en enkelt tekstlinje.

La oss se på teksten i sin rå form:

less moby-dick.txt

Teksten vises i mindre:

Teksten strekker seg fra den ene kanten av vinduet til den andre, og linjene er stygge, og de bryter ord i midten.

Vi har en annen versjon av filen med korte linjer:

less short-lines-moby-dick.txt

Linjene i denne filen er mye kortere. Hver linje avsluttes med et nylinjetegn.

Hvis vi bruker hexdump-kommandoen, kan vi det se på byteverdiene i filen og se nylinjekarakterene. Alternativet -C (kanonisk) formaterer utdataene til å vise heksadesimale verdier i hovedmenyen