A hajtogatási parancs használata Linuxon

A Linux fold parancsa rakoncátlan kimenetet hoz a sarokra. Olvasson széles szövegrészeket, végtelen karakterláncokat és formázatlan adatfolyamokat a kimenet szélességének szabályozásával. Megtanulják, hogyan.

Hogyan működnek a szövegsorok a Linux terminálban

A Linux-harc első szabálya: ismerd az ellenségedet. Tehát határozzuk meg. Mi is pontosan egy szövegsor? Ez egy karaktersorozat – betűk, számok, szimbólumok és szóköz –, amelyet egy speciális bájt zár le, ami azt jelenti, hogy „új sort kezd”. Linuxban és Unixban, az újsor karakter, amelyet soremelésnek is neveznek, sorvégi jelzőként használatos. Ez egy 0x0a in értékű bájt hexadecimális és tíz tizedesjegyben.

A különböző operációs rendszerek különböző bájtértékeket használnak a sor végének jelzésére. A Windows kétbájtos sorozatot használ. A Windows szövegfájljaiban az újsor karaktert közvetlenül a kocsi visszatérő karakter, ami hexadecimálisban 0x0d, decimálisban pedig tizenhárom.

  Mi az a Microsoft Whiteboard, és hogyan kell használni?

A „soremelés” és a „kocsi visszaküldése” kifejezések visszanyúlnak az írógéphez. A lemez, azt a hengert, amelyre a papírt becsavarták, mozgatható kocsira volt szerelve. A kocsi egy karaktert szélességben balra mozdult minden alkalommal, amikor megnyom egy gombot. Új sor indításához megnyomott egy kart, amely visszaállította a kocsit az eredeti helyzetébe, és amely elforgatta a görgőt, és egy vonal magasságával felfelé mozgatta a papírt. Ezt a műveletet kocsi-visszatérésnek, a henger forgását (és a papír előrehaladását) pedig soremelésnek nevezték.

A kart kulcsra cserélték, amikor az írógép felvillanyozott. A kulcson Carriage Return vagy csak Return felirat szerepelt. Néhány korai számítógép, mint pl a BBC Micro még mindig a Return nevet használta azon, amit ma Enter billentyűnek hívunk.

  Hogyan találja meg az Apple Card számát

Az újsor karakterek általában nem láthatók. Csak a hatásukat láthatod. Az újsor karakter arra kényszeríti a szöveget megjelenítő vagy feldolgozó szoftvert, hogy új sort kezdjen.

De mi a probléma a hosszú sorokkal?

A nem, vagy nagyon kevés újsor karaktert tartalmazó szöveg túl széles lesz ahhoz, hogy kényelmesen olvasható legyen a terminálablakban. Ez bosszantó, de megoldható.

Még veszélyesebb probléma, ha olyan hosszú sorokat kell kezelni, amelyek problémát jelentenek a szöveg feldolgozására, továbbítására vagy fogadására irányuló szoftver számára. Ennek oka lehet a belső pufferhossz vagy a szoftver egyéb olyan jellemzői, amelyeket nem tud beállítani.

De erre van egy megoldás, az úgynevezett fold.

Első lépések hajtogatással

Vessünk egy pillantást a szöveg egy részére, amiben nagyon-nagyon hosszú sorok vannak. Vegye figyelembe, hogy itt nem mondatokról beszélünk. (Bár a szöveg Herman Melville Moby Dickjéből származik, így mindkét világból a legjobbat kaptuk.)

  Discord matricák készítése és használata

A szövegsor minden az utolsó újsor karaktertől (vagy a fájl elejétől, ha ez a fájl első sora) egészen a következő újsor karakterig, függetlenül attól, hogy mi van közötte. A sor sok mondatot tartalmazhat. Sokszor körbefordulhat a terminál ablakában. De ez még mindig egyetlen sornyi szöveg.

Nézzük a szöveget nyers formájában:

less moby-dick.txt

A szöveg kevesebb nyelven jelenik meg:

A szöveg az ablak egyik szélétől a másikig nyúlik, a sortörések pedig csúnyák, középen megtörik a szavakat.

A fájlnak egy másik verziója van rövid sorokkal:

less short-lines-moby-dick.txt

A fájl sorai sokkal rövidebbek. Minden sor egy újsor karakterrel zárul.

Ha a hexdump parancsot használjuk, megtehetjük nézd meg a bájtértékeket a fájlban és nézze meg az újsor karaktereit. A -C (canonical) opció úgy formázza a kimenetet, hogy a főben hexadecimális értékeket mutasson