Stream Editor (SED): Základy

Stream Editor Sed Zaklady



SED, tiež známy ako stream editor, je veľmi užitočný nástroj. Používa sa na vyhľadanie konkrétneho slova alebo vzoru a následné vykonanie niečoho so slovom alebo vzorom alebo inými slovami na jeho transformáciu. V systéme Windows je SED tiež známy ako funkcie „nájsť“ a „nahradiť“. SED sa dodáva s Ubuntu, takže nie je potrebné nič inštalovať; stačí začať používať. V tomto návode vám ukážeme, ako používať SED alebo stream editor.

Príkaz „S“.

Najdôležitejší zo všetkých príkazov v SED alebo stream editore je príkaz „s“. Písmeno „s“ znamená náhradu. Syntax je nasledovná:







„s / regulárny výraz / nahradenie / vlajky


Použijme teda na príklady súbor s názvom „file.txt“. Takto vyzerá súbor „file.txt“, ak ho zadáte:




Ukážme si na príklade, ako funguje príkaz „s“:



ale „s / najprv / mesiac / som súbor.txt > moon.txt


Keď je uvedený takýto výraz, znamená to:





    • s – Znamená náhradu.
    • prvé – Slovo, ktoré sa má vyhľadať v súbore s názvom „súbor.txt“.
    • mesiac – slovo „prvý“ sa nahrádza slovom „mesiac“.
    • i – Znamená to ignorovať. Prvýkrát túto časť ignorujeme.
    • file.txt – Súbor, v ktorom bude SED hľadať vzor alebo slovo. V tomto prípade slovo „prvý“ bude:
    • hľadať v súbore.txt

    • moon.txt – Keď sa slovo „prvý“ nahradí slovom „mesiac“, uloží sa pod „mesiac.txt“.

Takže, čo sa tu deje? SED nahrádza slovo „prvý“ za „mesiac“ iba v prvom prípade (to znamená, že ak sa slovo „prvý“ vyskytne viackrát, nenahradí ho celé ani ho nenahradí viackrát). Súbor, ktorý hľadá, sa nazýva „file.txt“ a po vykonaní transformácie alebo nahradenia sa uloží pod „moon.txt“.



Takto to vyzerá:


Nezabudnite vložiť „/“ tam, kde má byť. Ak vynecháte „/“, SED príkaz neprijme.

Doteraz sme slovo „prvý“ nahradili slovom „stretli“ s náhradou. Teraz predpokladajme, že chceme nahradiť slovo „riadok“ (ktoré sa vyskytuje mnohokrát – konkrétne štyrikrát) v treťom riadku slovom „anjel“.

Ako konkrétne zacielime na ten tretí riadok? Používame nasledujúci príkaz:

ale '3s / riadok / anjel / som súbor.txt > angel.txt


Takže, čo sa tu práve stalo? „3“ určuje číslo riadku. Preto ide do tretieho riadku. Potom nahraďte slovo „riadok“ za „anjel“ v súbore s názvom „file.txt“ a uložte transformovaný súbor ako „angel.txt“.


Čo ak chceme nahradiť alebo transformovať riadky „3“ a „4“?

ale ' 3 ,4s / riadok / anjel / som súbor.txt > angel2.txt



Všimnite si, že v predchádzajúcom príklade sme na ignorovanie použili príznak „i“. Teraz používame príznak „g“ pre globálne.

Ukážme si na príklade, ako funguje príkaz „s“:

ale „s / riadok / slnko / g’ file.txt > sun.txt


Keď je uvedený takýto výraz, znamená to:

Písmeno „g“ znamená globálne. Pamätajte, že v prvom príklade, keď použijeme príznak „i“, existuje iba jedna náhrada. Teraz, keď sme pridali „g“ pre globálne, znamená to náhradu všade. Takže namiesto prvého riadku, druhého riadku, tretieho riadku a posledného riadku sa hovorí prvé slnko, druhé slnko, tretie slnko a posledné slnko. Nahrádza slovo riadok v celom súbore (všade) slovom „slnko“.


Čo ak chceme vybrať jeden riadok na základe slova, ktoré obsahuje? Vidíme, že posledný riadok súboru „file.txt“ obsahuje slovo „posledný“. Teraz predpokladajme, že chceme „Toto je posledný riadok. Toto je posledná veta.' veta stať sa „Toto je posledný duch. Toto je posledná veta.'

Píšeme nasledovné:

ale ' / posledný / s / riadok / duch / súbor.txt > ghost.txt


„Posledný“ tu hovorí SED, aby vyhľadal riadok so slovom „posledný“ a potom nahradil slovo „riadok“ slovom „duch“ v tomto riadku.


Teraz predpokladajme, že chceme urobiť opak. Predpokladajme, že chceme, aby každý riadok bez slova „posledný“ mal slovo „riadok“ zmenené na „duch“. Napíšeme si nasledovné:

ale ' / posledný /! s / riadok / duch / súbor.txt > ghost2.txt


Ako môžete vidieť tu, každý riadok okrem posledného (ktorý obsahuje slovo „posledný“) má slovo „riadok“ nahradené slovom „duch“.


Môžeme to urobiť aj s číslami riadkov:

ale ' 3 , 4 ! s / riadok / noc / som súbor.txt > night.txt


V tomto prípade sú riadky 3 a 4 vynechané, ale každý ďalší riadok má slovo „riadok“ nahradené slovom „noc“.

Viaceré príkazy

Čo keby ste mali viacero príkazov? Urobíte to radšej po jednom alebo naraz a ušetríte si čas a prácu?

Čo ak chceme zmeniť slovo „prvý“ na „deň“, „druhý“ na „noc“ a „zvyšok“ na „duch“? Používame na to bodkočiarku. Nezabudnite na koniec dať bodkočiarku!

Upozorňujeme, že nemusíte bezpodmienečne uvádzať príznak „i“ alebo príznak „ignorovať“, ale bezpodmienečne musíte za transformačnú frázu umiestniť lomku (/).

Teraz si to pozrime na príklade:

ale „s / najprv / deň / ; s / druhý / noc / ; s / tretí / duch / ; s / posledný / duch / ;’ súbor.txt > kombinácia.txt


Záver

Editor prúdu alebo SED je spôsob výberu slova alebo vzoru a jeho transformácie. Je to vlastne ekvivalent príkazového riadka funkcií „nájsť“ a „nahradiť“ v okne. Príkaz SED môže byť skutočne komplikovaný, ale ak poznáte aspoň základy, ste pripravení ho prevziať! SED je v skutočnosti veľmi výkonný nástroj s mnohými funkciami. Aj keď ich nemôžeme pokryť všetky v jednom návode, prebrali sme základy SED. V podstate sme sa naučili, ako transformovať konkrétne slovo pomocou príkazu „s“, kde „s“ znamená náhradu. Slová môžeme nahradiť inými slovami, selektívne vybrať riadok, v ktorom dôjde k zámene, alebo ho dokonca negovať. Či tak alebo onak, toto je najjednoduchšia časť o SED.

Šťastné kódovanie!