Stream Editor (SED): Základy

Stream Editor Sed Zaklady



SED, také známý jako stream editor, je velmi užitečný nástroj. Používá se k vyhledání konkrétního slova nebo vzoru a následnému provedení něčeho se slovem nebo vzorem nebo jinými slovy jeho transformace. Ve Windows je SED také známý jako funkce „najít“ a „nahradit“. SED je dodáván s Ubuntu, takže není třeba nic instalovat; stačí začít používat. V tomto tutoriálu vám ukážeme, jak používat SED nebo editor streamů.

Příkaz „S“.

Nejdůležitější ze všech příkazů v SED nebo stream editoru je příkaz „s“. Písmeno „s“ znamená náhradu. Syntaxe je následující:







„s / regulární výraz / výměna, nahrazení / vlajky


Použijme tedy pro příklady soubor s názvem „file.txt“. Takto vypadá soubor „file.txt“, pokud jej zadáte:




Ukažme si na příkladu, jak funguje příkaz „s“:



ale „s / První / měsíc / i' soubor.txt > moon.txt


Když je uveden takový výraz, znamená to:





    • s – Znamená náhražku.
    • první – Slovo, které se má hledat v souboru s názvem „file.txt“.
    • měsíc – slovo „první“ se nahrazuje slovem „měsíc“.
    • i – Znamená ignorovat. První část budeme ignorovat.
    • file.txt – Soubor, ve kterém bude SED hledat vzor nebo slovo. V tomto případě bude slovo „první“:
    • hledat v souboru.txt

    • moon.txt – Když je slovo „první“ nahrazeno slovem „měsíc“, bude uloženo pod „moon.txt“.

Takže, co se tady děje? SED nahradí slovo „první“ za „měsíc“ pouze v prvním případě (to znamená, že pokud se slovo „první“ vyskytne vícekrát, nenahradí jej celé ani nenahradí vícekrát). Soubor, který hledá, se nazývá „file.txt“ a jakmile je provedena transformace nebo nahrazení, bude uložen pod „moon.txt“.



Takhle to vypadá:


Nezapomeňte prosím umístit „/“ tam, kde má být. Pokud vynecháte „/“, SED příkaz nepřijme.

Dosud jsme nahradili pouze slovo „první“ slovem „narazili“. Nyní předpokládejme, že chceme nahradit slovo „řádek“ (které se vyskytuje mnohokrát – konkrétně čtyřikrát) ve třetím řádku slovem „anděl“.

Jak konkrétně cílíme na třetí řádek? Použijeme následující příkaz:

ale '3s / čára / anděl / i' soubor.txt > angel.txt


Takže, co se tu právě stalo? „3“ udává číslo řádku. Proto přechází na třetí řádek. Poté nahraďte slovo „line“ za „anděl“ v souboru s názvem „file.txt“ a uložte transformovaný soubor jako „angel.txt“.


Co když chceme nahradit nebo transformovat řádky „3“ a „4“?

ale ' 3 ,4s / čára / anděl / i’ file.txt > angel2.txt



Všimněte si, že v předchozím příkladu jsme pro ignorování použili příznak „i“. Nyní používáme příznak „g“ pro globální.

Ukažme si na příkladu, jak funguje příkaz „s“:

ale „s / čára / slunce / g' soubor.txt > sun.txt


Když je uveden takový výraz, znamená to:

„G“ znamená globální. Pamatujte, že v prvním příkladu, když použijeme příznak „i“, existuje pouze jedna náhrada. Nyní, když jsme přidali „g“ pro globální, znamená to nahradit všude. Takže místo prvního řádku, druhého řádku, třetího řádku a posledního řádku se řekne první slunce, druhé slunce, třetí slunce a poslední slunce. Nahradí slovo řádek v celém souboru (všude) slovem „slunce“.


Co když teď chceme vybrat jeden řádek na základě slova, které obsahuje? Vidíme, že poslední řádek souboru „file.txt“ obsahuje slovo „poslední“. Nyní předpokládejme, že chceme „Toto je poslední řádek. Tohle je poslední věta.' věta se stane „Toto je poslední duch. Tohle je poslední věta.'

Píšeme následující:

ale ' / poslední / s / čára / duch / soubor.txt > ghost.txt


„Poslední“ zde říká SED, aby hledal řádek se slovem „poslední“ a poté nahradil slovo „řádek“ výrazem „duch“ v tomto řádku.


Nyní předpokládejme, že chceme udělat opak. Předpokládejme, že chceme, aby každý řádek bez slova „poslední“ měl slovo „řádek“ změněno na „duch“. Zapišme si následující:

ale ' / poslední /! s / čára / duch / soubor.txt > ghost2.txt


Jak můžete vidět zde, každý řádek kromě posledního (který obsahuje slovo „poslední“) má slovo „řádek“ nahrazeno slovem „duch“.


Můžeme to udělat také s čísly řádků:

ale ' 3 , 4 ! s / čára / noc / i’ file.txt > night.txt


V tomto případě jsou vynechány řádky 3 a 4, ale na každém druhém řádku je slovo „linka“ nahrazeno slovem „noc“.

Více příkazů

Co kdybyste měli více příkazů? Děláte to raději po jednom nebo najednou a ušetříte si čas a práci?

Co když chceme změnit slovo „první“ na „den“, „druhý“ na „noc“ a „zbytek“ na „duch“? K tomu používáme středník. Nezapomeňte na konec dát středník!

Vezměte prosím na vědomí, že nemusíte bezpodmínečně vkládat příznak „i“ nebo příznak „ignorovat“, ale bezpodmínečně musíte za transformační frázi umístit lomítko (/).

Nyní se na to podívejme na příkladu:

ale „s / První / den / ; s / druhý / noc / ; s / Třetí / duch / ; s / poslední / duch / ;‘ soubor.txt > kombinace.txt


Závěr

Stream editor neboli SED je způsob výběru slova nebo vzoru a jeho transformace. Je to vlastně ekvivalent příkazového řádku funkcí „najít“ a „nahradit“ okna. Příkaz SED může být opravdu komplikovaný, ale pokud znáte alespoň základy, jste připraveni se toho ujmout! SED je ve skutečnosti velmi výkonný nástroj s mnoha funkcemi. I když je nemůžeme všechny pokrýt v jednom tutoriálu, probrali jsme základy SED. V podstatě jsme se naučili, jak transformovat konkrétní slovo pomocí příkazu „s“, kde „s“ znamená náhradu. Slova můžeme nahrazovat jinými slovy, selektivně vybrat řádek, kde k substituci dojde, nebo ji dokonce negovat. Ať tak či onak, toto je nejjednodušší část o SED.

Šťastné kódování!