Hur man använder kommandot fold på Linux

Linux fold-kommandot bringar oregerlig utdata till klacken. Läs breda bitar av text, oändliga strängar och oformaterade strömmar genom att styra utmatningens bredd. Lära sig hur.

Hur textrader fungerar i Linux-terminalen

Första regeln för Linux-strid: känna din fiende. Så låt oss definiera det. Vad är egentligen en textrad? Det är en sekvens av tecken – bokstäver, siffror, symboler och blanksteg – som avslutas av en speciell byte som betyder ”starta en ny rad.” I Linux och Unix, nyradstecken, även kallad radmatning, används som radslutindikator. Detta är en byte med värdet 0x0a in hexadecimal och tio i decimal.

Olika operativsystem använder olika bytevärden för att indikera slutet på en rad. Windows använder en tvåbytesekvens. I Windows-textfiler följs nyradstecknet omedelbart av vagnreturkaraktärsom är 0x0d i hexadecimal och tretton i decimal.

Termerna ”linefeed” och ”carriage return” går tillbaka till skrivmaskinen. Plattan, cylindern som pappret lindades runt, var monterad på en rörlig vagn. Vagnen flyttade en karaktärs bredd åt vänster varje gång du tryckte på en tangent. För att starta en ny linje tryckte du på en spak som förde tillbaka vagnen till sitt ursprungliga läge, och som roterade rullen och flyttade papperet uppåt med en linjes höjd. Denna åtgärd var känd som vagnretur, och rotationen av cylindern (och frammatningen av papperet) var känd som en linjematning.

Spaken ersattes av en nyckel när skrivmaskinen blev elektrifierad. Nyckeln var märkt Carriage Return eller bara Return. Vissa tidiga datorer som t.ex BBC Micro använde fortfarande namnet Return på vad vi nu kallar Enter-tangenten.

Du kan som regel inte se nyradstecken. Du kan bara se deras effekt. Nyradstecknet tvingar programvara som visar eller bearbetar text att starta en ny rad.

Men vad är problemet med långa linjer?

Text med inga, eller mycket få, nyradstecken i den kommer att vara för bred för att bekvämt läsas i terminalfönstret. Det är irriterande, men det går.

En mer skadlig fråga är att behöva hantera rader av sådan längd att de utgör ett problem för programvaran som behöver bearbeta, överföra eller ta emot texten. Detta kan orsakas av interna buffertlängder eller andra aspekter av programvaran som du inte kan justera.

Men det finns en fix för det, som kallas fold.

Första stegen med vik

Låt oss ta en titt på en del av texten som har väldigt, väldigt långa rader. Observera att vi inte pratar om meningar här. (Även om texten kommer från Herman Melvilles Moby Dick, så vi har det bästa av två världar.)

En textrad är allt från det sista nyradstecken (eller början på filen om det är den första raden i filen) hela vägen upp till nästa nyradstecken, oavsett vad som står emellan. Raden kan innehålla många meningar. Det kan lindas runt i terminalfönstret många gånger. Men det är fortfarande en enda textrad.

Låt oss titta på texten i dess råa form:

less moby-dick.txt

Texten visas i mindre:

Texten sträcker sig från ena kanten av fönstret till den andra, och radbrytningen är ful, och de bryter ord i mitten.

Vi har en annan version av filen med korta rader:

less short-lines-moby-dick.txt

Raderna i den här filen är mycket kortare. Varje rad avslutas med ett nyradstecken.

Om vi ​​använder kommandot hexdump kan vi det titta på bytevärdena i filen och se nyradstecken. Alternativet -C (kanoniskt) formaterar utdata för att visa hexadecimala värden i huvudet