U N I X
Autor : ing. Ales Limpouch, KP FEL CVUT Praha

4. Zpracovani textovych souboru

4.1 Editace textu

Pro editaci textu poskytuje standardni UNIX interaktivni radkovy
editor ed, jeho vylepsenou verzi ex, a editor vi, coz je editor
ex pracujici v obrazovkovem rezimu. Tyto editory jsou standardni,
nepatri vsak k prilis oblibenym. Naopak neinteraktivni (davkovy)
editor sed, ktery slouzi jako editacni filtr se v UNIXu hojne
vyuziva.
 

Prikazy:

ed [-] [-x] [fname] editace souboru fname
- tichy rezim
-x sifrovani ukladaneho textu

adresace radku:
expr cislo radku (pocatek = 1)(num,-,+,/str/)
. soucasny radek
$ posledni radek
'char reference na definovany odkaz char
e1,e2 usek souboru od radku e1 po radek e2
prikazy: (mohou zacinat adresaci radku)
q ukonceni editace
! cmd provedeni prikazu cmd v shellu
f vypis jmena souboru
f fname nastaveni jmena souboru
e fname nacteni souboru fname
r fname pripojeni souboru fname
w fname zapis souboru
W fname pripojeni za soubor fname
p vypis radku
l vypis radku se specialnimi znaky
= vypis cisla radku
k char definice odkazu char na radek
a vkladani textu za radek (konec .<CR>)
i vkladani textu pred radek
j spojeni radku (vynechani <CR>)
d smazani radku
c nahrada useku
m num presun oblasti za radek num
t num kopie oblasti za radek num
g rozsireni prikazu na celou zadanou oblast
v negace g
/str/ hledani retezce
// dalsi vyskyt pri hledani
?str? hledani retezce smerem k zacatku
?? dalsi vyskyt smerem k zacatku
s/str1/str2/ nahrada retezcu

metaznaky pro konstrukci hledaneho retezce
. libovolny znak
[chars] znak z mnoziny chars
[^chars] znak, ktery neni v chars
char* libovolny pocet opakovani char (i 0)
^ pocatek radky
$ konec radky
\ch znak ch (eliminace spec. vyznamu)
ex files ponekud komfortnejsi, vice souboru,
ohlasovaci znak :, vyrovnavaci pameti,
moznost aplikace prikazu Unixu
vi file obrazovkovy rezim editoru vi
rezim zobrazovaci (prochazeni a vypousteni
textu x, dw, dd),
rezim vkladani (a,i,o)
prikazovy rezim (:) (editor ex)
sed [-n] [-e script] [-f sfile] [files]
neinteraktivni editor souboru files
s vystupem do standardniho vystupu
editor implicitne prenasi vstup do vystupu
n potlaceni impl. prenosu
e script popis prikazu
f sfile popis prikazu v sfile
prikazy editoru odpovidaji editoru ed
zpracovani probiha sekvencne, nelze
pouzivat relativni adresaci, neni prikaz m
a prikaz ! slouzi jako znak negace prikazu


4.2 Tisk textovych souboru

Pro tisk textoveho souboru se pouziva prikaz "lpr". Pro pripadnou
jednoduchou upravu souboru do tiskove formy se pouziva filtr "pr".

Prikazy:
lpr [opts] [files] zarazeni souboru files do tiskove fronty
-r zruseni souboru po tisku
-m ukonceni tisku oznameno mailem
-P lpt urceni tiskarny
pr [opts] [files] uprava souboru files pro tisk
-lN delka stanky N (impl. 66)
-t potlaceni hlavicky
-h str hlavicka str (impl. datum, cas,
jmeno file a cislo str.)
-N vystup v N sloupcich
-wN sirka stranky N (impl. 72)
+N tisk od N-te stranky


4.3 Jednoduche zpracovani textovych souboru

Prikazy:

wc [-lwc] files informace o velikosti souboru
(lines words chars)
l pouze pocet radku
w pouze pocet slov
c pouze pocet pismen

grep [opts] expr [files]
filtr pro hledani vyskytu vzoru retezce
daneho expr v souborech files
konstrukce retezce je stejna s editorem ed
-v radky v niz nebyl nalezen vzor
-c pouze pocet nalezenych radku
-l pouze jmeno souboru
-n vypisuje poradove cislo a radek
-s pouze navratovy kod (shell)
-h potlaci tisk jmena souboru
-i neni rozdil mala a velka pismena
-e expr zadani vzoru (pokud zacina -)
fgrep rychly grep s pevnym textovym retezcem
egrep rozsireny grep s dalsimi metaznaky

metaznaky:
char+ alespon jeden znak char
char? nejvyse jeden znak char
c1 | c2 c1 nebo c2
(expr) uzavorkovani
split [-N] [file [name]]
rozdeleni souboru file na soubory o delce
N radku s jmenem namexx (xx = aa,ab atd.)
(name=- funguje jako filtr)
tr [-cds] [str1 [str2]]
filtr pro nahradu znaku z retezce str1
odpovidajicimi znaky v str2
c opacna nahrada (tj. znaku
krome uvedenych v str1)
d vypousteji se znaky ze str1
s zkracuje vicenasobny vyskyt znaku
sort [-bdfimnrtux] [+pos [-pos]] [-o name] [names]
filtr pro setrideni souboru names po radcich
b ignorovani levostannych mezer
d slovnikove setrideni (alfanum. znaky)
f konverze malych pismen na velka
i ignoroju znaky mimo ASCII 33-127
m setrideni souboru do jednoho
n usporadani podle ciselne hodnoty
r opacne setrideni
tx oddelovac poli je znak x
u vynechani duplicitnich radku
o name vystupni soubor name
+pos pocatek oblasti trideni na radku
-pos konec oblasti trideni na radku
(pos urceno jako m.n
m cislo pole (oddelena mezerou)
n cislo znaku v poli)
crypt [key] filtr pro zasifrovani textu pomoci key
(obvykle se nedodava mimo USA)

diff [-be] f1 f2 porovnani obsahu souboru f2 s f1

vysledkem je seznam odchylek:
n1 a n3,n4 pridat n3-n4 za n1
n1,n2 d n3 n1-n2 vypustit na n3
n1,n2 d n3,n4 n1-n2 se zameni n3-n4
< radky z file1
> radky z file2
b ignoruje rozdil mezera a TAB
e vystup v konvenci editoru ed
diff3 f1 f2 f3 porovnani 3 souboru
= = = = kazdy soubor jiny
= = = x lisi se soubor x (=1,2,3)
f: n1 a pripojeni textu za radek n1 v f
f: n1,n2 c zmena textu mezi n1-n2 v f
comm [-123] f1 f2 porovnani setridenych souboru f1 a f2
vystup: 3 sloupce
1.sloupec radky pouze v f1
2.sloupec radky pouze z f2
3.sloupec radky v obou souborech

-X potlaceni vystupu sloupce

deroff [-w] [files] filtr odstranujici direktivy programu
troff, nroff, tbl a eqn (viz 4.5)
w rozdeleni textu na slova

spell [opts] files kontrola pravopisu souboru files
-b kontrola na britskou anglictinu
spellin file udrzba slovniku pravopisu

Dalsi prikazy bohuzel nejsou soucasti SunOS 4.1.1:

style [opts] files analyza stylu v souborech files
-a vypis vsech vet, delka a citelnost
-rnum vypis vet s citelnosti horsi nez num
-lnum vypis vet delsich nez num
diction [-ml] [-f pattfile] files
kontroluje frazeologii (zkomoleni, chybne
fraze) v souborech files
ml v textu jsou nevetne casti
f file pripojeni databaze frazi file
explain interaktivni nabidka frazi (filtr)


4.4 Programovatelne manipulace s textem

Prikaz "awk" predstavuje vykonny interpret programovaciho jazyka,
ktery poskytuje rozsahle moznosti pro manipulaci s textovymi
soubory. Popis tohoto programu presahuje rozsah tohoto textu.



4.5 Formatovani textu
 

Zakladnimi prostredky pro formatovani textu v OS UNIX jsou
textove procesory nroff a troff. Nroff slouzi k priprave textu
pro radkove tiskarny, troff pro fotosazeci stroj. Prace s obema
je vcelku podobna, troff ma navic nektere schopnosti vyplyvajici
z vyssich schopnosti fotosazeciho stroje. Formatovani textu
se provadi davkovym zpusobem za pouziti souboru maker. Uvnitr
souboru jsou direktivy - povely pro textovy procesor.

Pro formatovani tabulek slouzi filtr tbl a pro matematicke vzorce
filtry eqn a neqn. Tyto filtry predzpracovavaji textove soubory
procesory troff (tbl,eqn) a nroff (tbl,neqn). Casti textu, ktere
nejsou pro ne urceny, tyto filtry kopiruji do vystupniho souboru.
Popis techto programu, direktiv a maker presahuje rozsah tohoto
textu.