Ebooks, Audobooks and Classical Music from Liber Liber
a b c d e f g h i j k l m n o p q r s t u v w x y z





Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Sed - Wikipedie, otevřená encyklopedie

Sed

Z Wikipedie, otevřené encyklopedie

Název tohoto článku není z technických důvodů zcela správný. Správný název by měl být sed.

sed (zkratka pro Stream EDitor) je jednoduchý, ale mocný počítačový program, sloužící k aplikaci rozličných předdefinovaných textových transformací na sekvenční proud textových dat. Po jednotlivých řádcích prochází vstupní soubor, dle pravidel určených v jednoduchém jazyku (sedovském skriptu) každý řádek upraví a poté vypíše. sed původně vytvořil někdy na přelomu let 1973/1974 Lee E. McMahon z Bellových laboratoří jako unixový nástroj, dnes je však dostupný pro téměř všechny operační systémy podporující příkazový řádek.

Obsah

[editovat] Popis

sed je často nazýván neinteraktivním textovým editorem. Od konvenčních textových editorů se odlišuje způsobem, jakým je vstup zpracováván. Namísto aby jednou prošel seznam příkazů a každý z nich aplikoval na celý text, uložený v paměti počítače, prochází sed textovým souborem jednou a na každý řádek aplikuje seznam příkazů. Protože je v jednu chvíli v paměti jen jediný řádek, dokáže sed zpracovat i opravdu velké textové soubory.

sedovské příkazy vychází z editoru ed a většina příkazů funguje podobně, avšak v obrácené formě. Například: příkaz 25d znamená je-li toto řádek číslo 25, pak jej smaž (a nevypisuj), namísto jdi na řádek 25 a smaž ho, jako tomu bylo v editoru ed. Důležitou výjimku tvoří příkazy pro kopírování a přesun, které zasahují do více řádků a nemají tedy v sedu přímý ekvivalent. Namísto nich přináší sed zvláštní buffer a dodatečné příkazy pro práci s ním. Například příkaz edu pro zkopírování řádku 25 na řádek 76 (25t76) by byl v sedu proveden pomocí dvou příkazů (25h; 76g) pro uložení řádku do bufferu až do chvíle, kdy bude znovu použit.

Následující příklad ukazuje typické využití sedu:

sed -e 's/původní/nový/g' vstupniSoubor > vystupniSoubor

s znamená nahraď (substitute), g znamená globálně, tj. každý vyhovující výskyt na řádku bude nahrazen. Za prvním lomítkem začíná regulární výraz pro vyhledání a za druhým výraz pro jeho nahrazení. Příkaz náhrady (s///) je nejsilnější a nejpoužívanější sedovský příkaz.

V systémech unixového typu je sed často využíván jako filtr v rouře:

generuj_data | sed -e 's/x/y/'

Na vytvořená data je aplikován malá změna, spočívající v náhradě x za y.

Více nahrazení či jiných příkazů lze uložit například do souboru nahrada.sed a poté použít:

sed -f nahrada.sed vstupniSoubor > vystupniSoubor

Vedle nahrazování jsou možné i další jednoduché úpravy. Následující skript kupříkladu smaže prázdné řádky nebo řádky obsahující jen mezery:

sed -e '/^ *$/d' vstupniSoubor

V příkladu je použito následujících metaznaků:

  • ^ vyhovuje začátku řádku
  • $ vyhovuje konci řádku
  • . vyhovuje libovolnému jednomu znaku
  • * vyhovuje žádnému nebo libovolnému počtu výskytů předchozího znaku
  • [] vyhovuje kterémukoli ze znaků uvedených v []

Komplexní konstrukce jsou v sedu možné do té míry, že jej lze považovat za vysoce specializovaný, třebaže jednoduchý, programovací jazyk. Tok programu lze například řídit použitím návěstí (dvojtečka následovaná řetězcem, tj. názvem návěstí) a instrukce b; instrukce b, následovaná názvem návěstí přesune zpracovávání do bloku za návěstím. Pokud návěstí neexistuje, pak dojde k ukončení skriptu.

sed je jedním z nejstarších unixových nástrojů, umožňujících zpracování datových souborů z příkazového řádku, a stal se z něj přirozený nástupce populárního příkazu grep. Jako bratranec pozdějšího AWK umožnil sed provádění zajímavých a mocných datových úprav v kombinaci s shellovými skripty. sed byl také jedním z prvních unixových nástrojů, který skutečně vybízel k všestrannému využití regulárních výrazů. Co se týče rychlosti operací je sed obecně rychlejší než Perl a podstatně rychlejší než AWK.

sed a AWK jsou často prohlašovány za předchůdce a inspirativní zdroje pro jazyk Perl; konkrétně příkaz s/// je součástí perlovské syntaxe.

Jazyk sedu nemá proměnné a má pouze primitivní goto a schopnost větvení. Přesto je však turingovsky úplný.

GNU sed přináší několik nových funkcí, jako je okamžitá editace souborů (tj. nahrazení původního souboru výsledkem aplikace sedovského programu). Okamžité editace se často využívá namísto skriptů ed, např.:

sed -i 's/abc/def/' soubor

…lze použít místo:

ed soubor
1,$ s/abc/def/
w
q

Také existuje rozšířená verze sedu, nazvaná Super-sed (ssed), zahrnující regulární výrazy kompatibilní s Perlem.

[editovat] Ukázka kódu

Přestože sed obvykle pracuje s jedním řádkem, následující příklad odebere znak nového řádku z věty tam, kde následující řádek začíná mezerou.

Mějme následující text:

Tohle je moje kočka
  moje kočka se jmenuje betty
Tohle je můj pes
  můj pes se jmenuje Frank

A tady je příkaz:

sed 'N;s/\n //g;P;D;'
  • N přečte další řádek
  • s je nahrazení
  • „\n “ vyhovuje znak nového řádku (\n) a mezera
  • P vytiskne další řádek, který je zpracován
  • D jej smaže, takže není vytištěn dvakrát

[editovat] Literatura

[editovat] Externí odkazy

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com