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)