Příkaz sed nebo stream editor je program, který můžete použít k úpravě textových souborů podle různých parametrů. Příkaz sed lze také použít pro akce globálního vyhledávání a nahrazování. Některé z běžných možností příkazů a jejich použití jsou uvedeny v následující tabulce.
Možnost | Popis |
---|---|
-d | Smažte řádky, které odpovídají konkrétnímu vzoru nebo číslu řádku. |
-n,p | Vytiskněte pouze řádky, které obsahují vzor. |
s | Nahraďte první výskyt řetězce v souboru. |
S,g | Globálně nahraďte původní řetězec náhradním řetězcem pro každý výskyt v souboru. |
Syntaxe
Obecná syntaxe příkazu sed je:
# sed {'option/address/ action'} {file names}
Adresy říkají sed, aby jednal pouze s určitými řádky nebo aby jednal pouze s textem, který odpovídá danému vzoru regulárního výrazu. Jsou volitelné. Po adresách následuje akce, která se má provést při nalezení shody. Posledním argumentem je název vstupního souboru. Parametry volby, adresy a akce jsou obvykle uzavřeny v jednoduchých uvozovkách.
Příklady příkazů sed
1. Nahraďte první výskyt regulárního výrazu v každém řádku souboru a vytiskněte výsledek:
# sed 's/regular_expression/replace/' filename
2. Nahraďte všechny výskyty rozšířeného regulárního výrazu v souboru a vytiskněte výsledek:
# sed -r 's/regular_expression/replace/g' filename
3. Nahraďte všechny výskyty řetězce v souboru a přepište soubor (tj. na místě):
# sed -i 's/find/replace/g' filename
4. Vyměňujte pouze na čarách, které odpovídají vzoru čar:
# sed '/line_pattern/s/find/replace/' filename
5. Odstraňte řádky odpovídající vzoru řádků:
# sed '/line_pattern/d' filename
6. Vytiskněte prvních 11 řádků souboru:
# sed 11q filename
7. Aplikujte na soubor více výrazů najít-nahradit:
# sed -e 's/find/replace/' -e 's/find/replace/' filename
8. Nahraďte oddělovač `/` jakýmkoli jiným znakem, který není použit ve vzorech hledání nebo nahrazování, např. `#`:
# sed 's#find#replace#' filename