P004 UNIXObsah |
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 |
Michal Brandejsbrandejs@informatics.muni.cz