P004 UNIX

Obsah
Předchozí: Příkazy editoru ed (4)

Příkazy editoru ed (5)

(.,.)s/RE/náhrada/
(.,.)s/RE/náhrada/g
(.,.)s/RE/náhrada/n      kde n je číslo 1 až 512
Příkaz substitute nahrazuje nalezený vzorek zapsaný RE jeho náhradou. Prohledává se každý řádek v zadaném rozsahu adres.

V globální variantě (na konci je uvedeno g) se nahradí všechny vyhovující vzorky na řádku; pokud globální indikátor není uveden, potom se nahradí pouze první vyhovující vzorek na každém řádku.

Uvedeme-li číslo n, potom se nahradí pouze n-tý výskyt vyhovujícího vzorku na řádku. Pokud se ani na jednom z adresovaných řádků nenajde alespoň jeden vyhovující vzorek, hlásí se chyba.

Na místě oddělovače lomítko (/) se smí uvést libovolný znak vyjma mezery a znaku nového řádku (znak bezprostředně za s určuje, jaký oddělovač bude použit). Běžným řádkem se stane řádek s posledním nalezeným výskytem vzorku.

Znak ampersand (&) nalezený v řetězci náhrada se nahradí řetězcem, který vyhovoval RE (na daném řádku, či vyhovujícím vzorku na řádku). Řídicí význam znaku '&' lze v řetězci náhrada potlačit uvedením '\&'.

V obecnějším významu můžeme v řetězci náhrada použít symboly '\n', kde n je číslice. Symbol se nahradí vzorkem, který vyhovoval obsahu n-té závorky \(...\) uvnitř RE. Závorky se počítají zleva od jedničky a počítá se vždy pořadí otevírací závorky.

Je-li jediným znakem řetězce náhrada znak procento (%), potom se pro definici aktuální náhrady použije řetězec náhrada z bezprostředně předcházejícího nahrazovacího příkazu. Řídicí význam znaku '%' se v řetězci náhrada potlačuje tehdy, pokud řetězec obsahuje více než jeden znak, nebo pokud je uvedeno '\%'.

Zpracovávaný řádek lze v řetězci náhrada rozdělit na dva (nebo více) zápisem znaku nového řádku, kterému bezprostředně předcházel znak obrácené lomítko (\). Tuto substituci však nelze použít jako součást příkazů g nebo v.

Následující: Neinteraktivní textový editor sed
Obsah

Michal Brandejs brandejs@informatics.muni.cz