Sed: Porovnání verzí

Smazaný obsah Přidaný obsah
oprava ve skriptu nešel spustit kvůli neukončené jednoduché uvozovce
optimalizace kódu; oprava kódu; kosmetické úpravy
Řádek 69:
Kromě ''prostoru pro vzorky'' používá ještě ''zásobník (buffer)'' do kterého lze během zpracování odkládat data pro další zpracování. Před vlastním zpracováním je pak třeba data ze ''zásobníku'' přesunout do ''prostoru pro vzorky'', teprve pak je možné je dále zpracovávat.
 
{| class="wikitable"
{| border="1" cellpadding="1" cellspacing="0" style="font-size: 75%; border: gray solid 1px; border-collapse: collapse; width: 100%"
|-
|- style="background: #ececec;"
! Příkaz
! Příklad použití
! Popis
|-
! p
| style="text-align:center" | '''p'''
| <pre><nowiki>
user@stroj:~/$ echo 'Zpracovávaný řádek' |sed '
p;s/Zpracovávaný/Upravený/'
Zpracovávaný řádek
Upravený řádek
</nowiki></pre>
| Příkaz vypisuje obsah ''prostoru pro vzorky''. V uvedeném příkladu byl příkazem '''p''' na standardní výstup vypsán obsah ''prostoru pro vzorky'' před jeho zpracováním.
|-
! h
| style="text-align:center" | '''h'''
| <pre><nowiki>
user@stroj:~/$ echo 'Zpracovávaný řádek' |sed '
h;s/Zpracovávaný/Upravený/;g'
Zpracovávaný řádek
</nowiki></pre>
| příkazPříkaz odstraní původní obsah ''zásobníku'' a přesune místo něj do zásobníku obsah z ''prostoru pro vzorky''. Pro lepší demonstraci byl v příkladu použit také příkaz '''g''', ten nahradil upravený obsah ''prostoru pro vzorky'' obsahem ''zásobníku'', který, jak vidno, příkaz '''h''' přesunul do ''zásobníku'' ještě před jeho úpravou.
|-
! H
| style="text-align:center" | '''H'''
| <pre><nowiki>
user@stroj:~/$ echo 'Zpracovávaný řádek' |sed '
H;s/Zpr/Upr/;H;s/acov/av/;H;s/áva/e/;H;g'
Řádek 100:
Upravávaný řádek
Upravený řádek
</nowiki></pre>
| příkazPříkaz přidá k původnímu obsahu ''zásobníku'' obsah z ''prostoru pro vzorky''. Aby bylo lépe patrné jak je postupně obsah ''prostoru pro vzorky'' zpracováván, je průběžně přidáván příkazem '''H''' k obsahu ''zásobníku'' a na závěr vypsán příkazem '''g'''. První řádek nemá žádný obsah, protože ''zásobník'' byl původně prázdný.
|-
! g
| style="text-align:center" | '''g'''
| <pre><nowiki>
user@stroj:~/$ echo 'Zpracovávaný řádek' |sed '
g'
Řádek 116:
Zpracovávaný řádek
Upravený řádek
</nowiki></pre>
| Příkaz vypíše obsah ''zásobníku'' a pak ho z něj odstraní. Jak funguje už sice docela objasňují příklady uvedené u předchozích příkladů, ale aby to bylo dostatečně zřejmé přidal jsem ještě další dva. V prvním příkaz '''g''' vypíše prázdný řádek, protože ''zásobník'' je zatím prázdný. Ve druhém příkladu příkaz '''p''' vypsal obsah ''prostoru pro vzorky'' aby bylo patrné že ten prázdný není. Teprve ve třetím příkladu je upravený obsah ''prostoru pro vzorky'' vložen příkazem ''h'' do ''zásobníku'', odkud může být příkazem '''g''' vypsán.
|-
! G
| style="text-align:center" | '''G'''
| <pre><nowiki>
user@stroj:~/$ echo 'Zpracovávaný řádek' |sed '
G'
Řádek 135:
Upravený řádek
Upravený řádek
</nowiki></pre>
| Příkaz připojí obsah ''prostoru pro vzorky'' k obsahu ''zásobníku'', ten pak vypíše.
|-
! x
| style="text-align:center" | '''x'''
| <pre><nowiki>
user@stroj:~/$ echo 'Zpracovávaný řádek' |sed '
x'
Řádek 151:
Zpracovávaný řádek
Upravený řádek
</nowiki></pre>
| Příkaz prohodí obsah ''zásobníku'', s obsahem ''prostoru pro vzorky''.
|-
|}
 
Řádek 238 ⟶ 237:
}'
</pre>
 
 
 
== Vícenásobné zpracování vstupu ==
Řádek 262 ⟶ 259:
 
==Skripty==
 
 
V případě složitějších konstrukcí je výhodnější než na příkazový řádek zapsat soubor příkazů do zvláštního souboru. V něm se každý příkaz píše na nový řádek, tudíž je není nutné oddělovat středníky.
Řádek 300 ⟶ 296:
'''Příkazy pro základní editaci'''
 
{| class="wikitable"
{| style="width: 100%; text-align: center; font-size: smaller; table-layout: fixed;"
|-
|- style="background: #aabbcc;"
! příkaz
! popis příkazu
Řádek 345 ⟶ 341:
'''Informace o zpracovávaných řádcích'''
 
{| class="wikitable"
{| style="width: 100%; text-align: center; font-size: smaller; table-layout: fixed;"
|-
|- style="background: #aabbcc;"
! příkaz
! popis příkazu
Řádek 387 ⟶ 383:
== Sed - nahrazeni retezce promennou ==
 
read zmena <br />
read new <br />
 
sed -e 's/'"$zmena"'/'"$new"'/' kontakty.db
 
 
[[Kategorie:Linux]]