
linebreak.awk v1.0

Tai programa awk kalba, skirta teksto ilg eilui suskaidymui  trumpesnes. 
Jos panaudojimo formatai:

awk -f linebreak.awk [file_name | -] start_position max_line_length
awk -f linebreak.awk help
awk -f linebreak.awk version

Nutylimosios eiluts ilgio reikms yra 68 ir 80.

(c)2024, Vartiklis, Jonas Skendelis.  linebreak.awk yra platinama pagal 
MIT License (r. faile license.txt ) licenzij. Ji leidia neribotai 
naudoti, kopijuoti, modifikuoti, platinti ir pardavinti jos kopijas.

Taiau visose io programinio produkto pilnose kopijose ar atskirose 
dalyse turi bti isaugomas autorinis raas bei licenzijos tekstas.


Smulkesnis apraymas

Kartais tekstiniame faile eiluts yra labai ilgos, pvz., visa pastraipa 
yra isaugota kaip viena eilut. Tok tekst sunkiau skaityti, tad natralus 
noras jo eilutes matyti trumpesnmis. Tam galime pasinaudoti kai kuriomis 
programomis (pvz., Notepad++ Word Wrap reimas nurodo, kad perirint 
tekst jo eiluts bus lauomos taip, kad visad tilpt  ekran; jei 
t lauin ufiksuoti, reikia vykdyti operacij Edit -> Line Operations 
-> Split Lines). Yra ir daugiau program (pvz. Microsoft WinWord), 
leidiani isaugoti tokius lauinius.

Taiau ne visada tinkama programa yra po ranka, o kartais jos yra komercins 
ir nepigios, tad paprastam ir greitam sprendimui Perl kalboje buvo 
sukurta linebreak.pl programa, kuri nuskaito pradin tekst ir visas 
jo eilutes suskaido  trumpesnes pagal nurodytus parametrus. Vliau i 
programa buvo perkelt a awk kalb tapdama linebreak.awk skriptu.
Pastaba: Program Perl aplinkai galite parsisisti i puslapio:
http://www.lithuanian.net/advancedhtml/perl.htm#linebreak

Skaidymo valdymui yra naudojami du parametrai: vienas nurodo minimal 
eiluts ilg, o kitas maksimal leistin ilg. Eilut iki minimalaus 
ilgio nra skaidoma, o j pasiekus, toliau iekoma tarpo simbolio, ties 
kuriuo eilut ir lauiama. Jei tarpas nra surandamas iki pasiekiant maksimal
eiluts ilg, eilut prievarta lauiama ties maksimaliu nurodytu ilgiu.

Tad emiau pateikta komanda sulauys tekst i standartinio vedimo srauto 
(konsols)  eilutes, ne trumpesnes nei 70 simboli, taiau ne ilgesnes 
nei 90 simboli, t.y. ties pirmu tarpu, esaniu po 70-os pozicijos. Rezultatas 
bus ivestas  standartin ivedimo sraut (konsol).

awk -f  linebreak.awk 70 90

Rezultat vietoje konsols galima nukreipti  fail (panaudojant >), pvz., 
awk -f  linebreak.awk  70 90 >skaidytas.txt

Skaidytin fail galima nurodyti ne tik nukreipiant  vedimo sraut 
(panaudojant <), pvz.,  
awk -f  linebreak.awk  70 90 <tekstas.txt
ar leidiant paimti i konvejerio (panaudojant | ), pvz.,
more testas.txt | awk -f  linebreak.awk  70 90
bet ir nurodant j pirmuoju parametru komandoje, pvz.,
awk -f  linebreak.awk  tekstas.txt 70 90


Yra dar vienas aspektas. Eiluts ilgius, vietoje parametr, galima nurodyti 
ir naudojant OS kintamuosius MIN ir MAX kintamuosius, pavyzdiui:
awk -v MIN=60 -v MAX=78 -f linebreak.awk text.txt

Pastaba: Parametr reikms perkloja sistemos kintamj reikmes. Jei 
nurodyta abu atvejai, tai panaudojamos reikms i  linebreak.awk parametr.


Versijos

1. Pirmoji versija yra demonstracin. Jos kodas pateiktas puslapyje:
http://www.lithuanian.net/advancedhtml/awk2.htm#linebreak


Priedas

Linux komandos fold ir fmt

Linux turi komand fold, kuri atlieka labai pana darb  ilgas eilutes 
suskaito  trumpesnes.
Jos formatas:
fold -s [opcijos] [failas]
Leistinos tokios opcijos:
-s - skelti ties tarpais;
-w NNN  eiluts ilgis yra NNN simboli;
- b  skaiiuoti baitus, o ne simbolius.

Dar lankstesn ir daugiau galimybi suteikianti yra Linux komanda fmt, 
performatuojanti teksto pastraipas ir rezultat ivedanti  standartin 
ivedimo rengin. Jos formatas:
fmt [-WIDTH] [OPTION]... [FILE]..

[-WIDTH] yra eiluts ilgio nurodymo formatas, kur galima nurodyti vairiai: 
-NNN, -wNNN ar -w NNN (nutylint yra 75)
[OPTION] yra opcija, nurodanti specifin veikimo bd (-c, -p, -s, -t, 
-u), nurodant, kaip interpretuojamas pastraipos traukimas, kaip pastraipa 
upildoma tarpais ir kita. ia jos nebus aptariamos, - skaitykite komandos
apraym.

Pastaba: fold ir fmt komanda yra ir tarp Unix stiliaus utilit Windows 
terpei UnxUtils. Jas galima parsisisti i svetains:
https://sourceforge.net/projects/unxutils/

