Osmé cvičení – Základy sedu
Jak spustit sed:
sed 'prikaz' [vstupni_soubor1...]
sed -f soubor_s_prikazy [vstupni_soubor1...]
sed -e 'prikazy' -f soubor_s_prikazy [vstupni_soubor1...]
Tvar příkazu:
adresa1[,adresa2]prikaz[parametry]
Určení adresy:
- Číslo řádku
$ – poslední řádek
/regex/ – regulární výraz
Příkazy:
Základní příkazy (manipulace s
pattern space):
p (print) vypíše aktuální obsah PS
n (next) načte nový řádek do PS a pokračuje (a pokud není -n, tak i vypíše)
d (delete) smaže PS, načte nový řádek a začne od začátku (tedy podobné n, ale jde od začátku příkazů)
Základní příkazy++ (jejich uppercase verze):
P (Print) vypíše první řádek PS
N (Next) načte a připojí další řádek do PS
D (Delete) smaže první řádek z PS (pokud by se stal prázdným, tak i načte nový) a pokračuje od začátku příkazů
Manipulace s
hold space:
h (hold) kopíruje PS -> HS
H (Hold) připojuje PS -> HS
g (get) kopíruje HS -> PS
G (Get) připojuje HS -> PS
x (exchange) prohazuje PS <-> HS
Vkládání:
i \
text (insert) vlož před aktuální řádek text
a \
text (append) vlož za aktuální řádek text
Další příkazy:
s/.../.../ nahrazení (regulární výraz)
y/.../.../ nahrazení jako tr (množiny znaků)
q konec (a vypsání aktuálního obsahu PS, pokud není -n)
Příklady:
- Vypište ze souboru pouze liché řádky
- Na začátky lichých řádek souboru vložte
+, na začátky sudých -
- Na začátky desáté až dvacáté řádky souboru
/etc/passwd přidejte znak #
- Stáhněte si testovací soubor kapitoly.txt a zkuste:
- Vypište pouze řádky s nadpisem kapitol
- Vypište pouze řádky s nadpisy kapitol a podkapitol
- Obalte každý název kapitoly řádky se znaky
====== (nad a pod)