Si të përdorni komandën fold në Linux
Komanda Linux fold
sjell rezultate të padisiplinuara në fund. Lexoni pjesë të gjera teksti, vargje të pafundme dhe transmetime të paformatuara duke kontrolluar gjerësinë e daljes. Mësoni se si.
Si funksionojnë linjat e tekstit në terminalin Linux
Rregulli i parë i luftimit të Linux: njihni armikun tuaj. Pra, le ta përcaktojmë atë. Çfarë është saktësisht një rresht teksti? Është një sekuencë karakteresh - shkronja, numra, simbole dhe hapësira e bardhë - që përfundon me një bajt të veçantë që do të thotë fillo një rresht të ri. Në Linux dhe Unix, karakteri i linjës së re, i quajtur gjithashtu një furnizim i linjës, përdoret si tregues i fundit i linjës. Ky është një bajt me një vlerë prej 0x0a në heksadecimal dhe dhjetë në dhjetor.
Sisteme të ndryshme operative përdorin vlera të ndryshme bajt për të treguar fundin e një rreshti. Windows përdor një sekuencë prej dy bajtësh. Në skedarët e tekstit të Windows, karakteri i linjës së re pasohet menjëherë nga karakteri i rikthimit, i cili është 0x0d në heksadecimal dhe trembëdhjetë në dhjetor.
Termat linefeed dhe carriage kthim datojnë që nga makina shkrimi. Pllaka, cilindri rreth të cilit ishte mbështjellë letra, ishte montuar në një karrocë të lëvizshme. Karroca lëvizi gjerësinë e një karakteri majtas sa herë që goditni një çelës. Për të nisur një linjë të re, ju shtyni një levë që e ktheu karrocën në pozicionin e saj origjinal dhe e cila rrotulloi rulin dhe e lëvizi letrën lart me lartësinë e një rreshti. Ky veprim njihej si kthimi i karrocës dhe rrotullimi i cilindrit (dhe avancimi i letrës) njihej si një furnizim me linjë.
Leva u zëvendësua nga një çelës kur makina e shkrimit u elektrizua. Çelësi u emërtua Kthimi i Carriage ose thjesht Kthimi. Disa kompjuterë të hershëm, si BBC Micro, përdornin ende emrin Kthimi
në atë që ne tani e quajmë tastin Enter
.
Si rregull, nuk mund të shikosh karaktere të linjës së re. Ju mund të shihni vetëm efektin të tyre. Karakteri i linjës së re detyron softuerin që shfaq ose përpunon tekstin për të filluar një rresht të ri.
Por cili është problemi me radhët e gjata?
Teksti pa ose shumë pak karaktere të linjës së re në të do të jetë shumë i gjerë për t'u lexuar me lehtësi në dritaren e terminalit. Kjo është e bezdisshme, por është e mundur.
Një çështje më e dëmshme është të ballafaqohemi me rreshta me gjatësi të tillë që ato përbëjnë një problem për softuerin që duhet të përpunojë, transmetojë ose marrë tekstin. Kjo mund të shkaktohet nga gjatësitë e brendshme të tamponit ose aspekte të tjera të softuerit që nuk mund t'i rregulloni.
Por ka një rregullim për këtë, i quajtur fold
.
Hapat e parë me palosje
Le të hedhim një vështrim në një pjesë të tekstit që ka rreshta shumë, shumë të gjata në të. Vini re se këtu nuk po flasim për fjali. (Edhe pse teksti vjen nga Moby Dick i Herman Melville, kështu që ne kemi më të mirën nga të dy botët.)
Një rresht teksti është gjithçka nga karakteri i linjës së re të fundit (ose fillimi i skedarit nëse është rreshti i parë në skedar) deri te karakteri i rreshtit të ri tjetër, pavarësisht se çfarë është në mes. Rreshti mund të përmbajë shumë fjali. Mund të mbështillet në dritaren e terminalit shumë herë. Por është ende një rresht të vetëm teksti.
Le ta shohim tekstin në formën e tij të papërpunuar:
less moby-dick.txt
Teksti shfaqet në pak
:
Teksti shtrihet nga një skaj i dritares në tjetrin, dhe mbështjelljet e rreshtave janë të shëmtuara dhe thyejnë fjalët në mes.
Ne kemi një version tjetër të skedarit me rreshta të shkurtër:
less short-lines-moby-dick.txt
Rreshtat në këtë skedar janë shumë më të shkurtra. Çdo rresht përfundon me një karakter të linjës së re.
Nëse përdorim komandën hexdump
, mund të shikojmë vlerat e bajtit brenda skedarit dhe të shohim karakteret e linjës së re. Opsioni -C
(kanonik) formaton daljen për të shfaqur vlerat heksadecimal në pjesën kryesore të ekranit me ekuivalentët e tekstit në një kolonë në anën. Do ta dërgojmë daljen në less
:
hexdump -C short-lines-moby-dick.txt | less
Duke shtypur prerjen përpara “/
” do të futni funksionin e kërkimit të less
. Shkruani 0a dhe shtypni Enter
. Karakteret e linjës së re do të theksohen në tekst. Mund të lëvizni nëpër skedar dhe të shihni se ku shfaqen. Nëse keni nevojë, mund të lëvizni daljen anash duke përdorur tastet Shigjeta majtas
dhe Shigjeta djathtas
.
Të kesh një karakter të linjës së re në fund të çdo rreshti mund të jetë një kufizim në vetvete. Pavarësisht se cili program ose dritare e shfaq këtë tekst, linjat nuk mund të përshtaten me dritaret me gjerësi më të gjerë se vetë linjat. Gjatësia e rreshtit është kufizuar nga karakteret e linjës së re.
Pra, ka probleme me linjat e gjata dhe ato të shkurtra.
Reduktimi i linjave të gjata
Komanda fold
ka një opsion -w
(gjerësia) që ju lejon të specifikoni një gjerësi të re maksimale për një pjesë të tekstit. Ne do të shfaqim tekstin e Moby Dick me një gjerësi maksimale prej 50 karakteresh:
fold -w 50 moby-dick.txt
Teksti shfaqet në dritaren e terminalit, me gjatësinë e re maksimale të skedarit. Skedari origjinal nuk është ndryshuar. Është vetëm dalja nga fold
që riformatohet.
Në pamje të parë, kjo duket shumë më mirë. Por fjalët ende po ndahen në mes në fund të rreshtave. Është padyshim më e lehtë për t'u lexuar, por disa nga thyerjet e sikletshme të fjalëve janë të bezdisshme.
Edhe pse duket sikur diferenca e djathtë e tekstit lëkundet brenda dhe jashtë, të gjitha gjatësitë e rreshtave janë të njëjta. Linjat që duken të jenë një karakter më të shkurtër se pjesa tjetër ndodh që të përfundojnë me një karakter hapësinor.
Ndarja e vijave në hapësira
Mund të përdorim opsionin -s
(hapësira) për t'u siguruar që rreshtat të ndahen vetëm në karakteret e hapësirës dhe asnjë fjalë të mos ndahet në dy rreshta.
fold -w 50 -s moby-dick.txt
Dalja tani ka një diferencë të thyer në të djathtë, por është më e lehtë për t'u lexuar. Të gjitha fjalët përfundojnë në rreshtat në të cilat filluan.
Zgjatja e linjave të shkurtra
Përveç shkurtimit të linjave të gjata, ne mund të përdorim fold
për të hequr gjatësinë e linjave të detyruara të linjave më të shkurtra.
fold -w 75 short-lines-moby-dick.txt
Karakteret e linjës së re hiqen dhe teksti mbështillet tani në ose përpara gjatësisë maksimale të caktuar.
Bërja e Ndryshimeve të Përhershme
fold
nuk mund të modifikojë skedarin origjinal. Nëse dëshironi të ruani ndryshimet, do të duhet ta ridrejtoni daljen nga fish
në një skedar të ri. Do ta ridrejtojmë daljen në një skedar të quajtur modified-moby-dick.txt.
fold -w 75 -s short-lines-moby-dick.txt > modified-moby-dick.txt
Le të hedhim një vështrim në skedarin tonë të ri:
less modified-moby-dick.txt
Si duket skedari ynë i ri?
Teksti tani po mbështillet mjeshtërisht në gjerësinë tonë të re të rreshtit, e cila është më e gjerë se gjatësia e rreshtit të skedarit origjinal.
Duke përdorur fold With Streams
Ne mund të përdorim fold
për të riformatuar rrjedhat e tekstit. Nuk kufizohet të punojë vetëm me skedarë. Le të shohim se si duket dalja e papërpunuar nga mjeti journalctl
. Opsioni -f
(ndiqja) tregon hyrjet më të reja në ditarin systemd
dhe përditësohet kur mbërrijnë hyrjet e reja.
sudo journalctl -f
Dalja mbështillet në skajin e dritares së terminalit.
Nuk duket shumë keq, por për hir të demonstrimit, le ta zvogëlojmë pak gjerësinë e tij. Ne do të dërgojmë daljen nga journalctl
në fold
. Ne e vendosim gjerësinë maksimale në 65 karaktere dhe po thyejmë linjat vetëm në hapësira.
sudo journalctl -f | fold -w 65 -s
Ekrani duket pak më pak dërrmues dhe gjithashtu më i rregullt në prekje.
Muret e tekstit të fortë mund të duken të padepërtueshëm. Ata janë të pakënaqur dhe të dobët për t'u marrë me to. Kur ju duhet të jeni në gjendje të shihni drurin nga pemët, thirrni palos
dhe vendosni pak rregull.
Linux Commands | ||
Files | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc | |
Processes | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap | |
Networking | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld |
RELATED: Best Linux Laptops for Developers and Enthusiasts