změň pořadí podřetězců

syntax

sed -r s/(aaa)(bbb)/\2\1/

sed -r - spuštím v modu extended regex, abych nemusel backshlashem escapovat závorky
(aaa) podřetězce dám do závorek
\1, \2 - takle si sed ukládá podřetězce

Příklad

Měl jsem v hotovém textu sekvenci obrázek + odkaz. Když chci zahrnout obrázek do odkazu, stačí prohodit pořadí podřetězců. Ještě jsem chtěl tučně zvýraznit odkaz, to je podřetězec 3:

sed -r 's|(<img [^>]*>)(<a [^>]*>)([^<]*)|\2\1<strong>\3</strong>|g'

Původní řetězec:

<img class="icn" src="../i/sm/obrazek.jpg" alt=""><a href="./link.html">odkaz</a>
Po úpravě:
<a href="./link.html"><img class="icn" src="../i/sm/obrazek.jpg" alt=""><strong>odkaz</strong></a>



odkazy na tuto stránku: wiki:sed