abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Navštivte Abc obchůdek se samolepkami a přívěsky!
Rozšířené hledání
×
včera 22:45 | IT novinky
NASA, která společně s Rackspace stála u zrodu projektu OpenStack, se již nadále nebude podílet na dalším vývoji této "infrastructure-as-a-service" platformy. V NASA totiž došli k závěru, že vzhledem k podpoře OpenStacku ze strany společností jako Red Hat, AT&T a HP lze jejich práci považovat za dokončenou. Posléze se NASA plánuje stáhnout i z vývoje další platformy pro cloud computing jménem Nebula.
Migilenik | Komentářů: 0
včera 22:45 | Upozornění
Blíží se svátek IPv6 a s ním i konference IPv6 Day. Na návštěvníky této akce čeká nejen bohatý program, ale také jedna speciální nabídka – v průběhu setkání bude možné získat se slevou 66 procent třetí vydání knihy IPv6 vysokoškolského pedagoga a publicisty Pavla Satrapy, tedy za 105 korun. … více »
Vilem Sladek | Komentářů: 3
včera 16:14 | Pozvánky

Přijďte si zasprintovat na Djangu, jiném Python open-source projektu, nebo jen potkat ostatní vývojáře!

… více »
Whit | Komentářů: 0
včera 10:20 | Nová verze
Na zrcadlech a torrentech jsou již k dispozici ISO obrazy distribuce Mageia 2. Poznámky k vydání čtěte zde.
Liborek | Komentářů: 13
23.5. 13:47 | Pozvánky

Letos v říjnu se v Praze uskuteční hned několik konferencí. Odehraje se zde nově vzniklá konference LinuxDays. K ní se přidá čtvrtý ročník openSUSE Conference, dvanáctý ročník SUSE Labs conference a aby to nebylo málo, přidá se i první ročník Gentoo miniconf. A to vše ve stejné dny a na stejném místě.

… více »
Miška | Komentářů: 7
23.5. 13:27 | Zajímavý projekt
Printerd je název nového projektu tiskového démona, který bude využívat PolicyKit a D-Bus. Projekt je zatím na úplném začátku, takže nejde o nic vhodného k produkčnímu nasazení. Mimo jiné aktuálně akceptuje jako vstup jen PDF dokumenty.
Luboš Doležel (Doli) | Komentářů: 50
23.5. 13:25 | Zajímavý software
Tři vývojáři ze společnosti Engine Yard přecházejí po dohodě mezi firmami do Red Hatu. Jde o vývojáře zabývající se rozvojem projektu JRuby. To ukazuje, že Red Hat má zájem o podporu alternativních jazyků nad OpenJDK.
Luboš Doležel (Doli) | Komentářů: 1
23.5. 13:20 | Zajímavý software
Fedora přejde na knihovnu libusbx, což je fork původní knihovny libusb. Důvodem pro fork byl zjevný nedostatek času nebo zájmu ze strany správce projektu. libusbx už teď nabízí užitečné funkce navrch.
Luboš Doležel (Doli) | Komentářů: 2
23.5. 10:29 | Nová verze
Vyšlo LLVM 3.1. Vylepšení se dotýkají podpory C++ 11 nebo architektur ARM a MIPS. Dále se můžete těšit z Python bindings nebo nástroje AddressSanitizer pro detekci chyb při práci s pamětí.
Luboš Doležel (Doli) | Komentářů: 0
23.5. 00:01 | Nová verze
Vyšla nová verze open source služby pro sdílení a synchronizaci souborů ownCloud 4. Mezi hlavní novinky patří verzování, šifrování dat, vestavěný prohlížeč ODF souborů, nové API a další - podrobnější popis novinek a vylepšení zde.
Dirka | Komentářů: 1
Pokud by se prohlížeč Opera stal svobodným:
 (9%)
 (31%)
 (1%)
 (59%)
Celkem 219 hlasů
 Komentářů: 25, poslední dnes 13:23
    Rozcestník
    Reklama
    Autoškola testy online Levný benzín

    sed -- poznámky (nejen) pro mě

    4.9.2011 14:06 | Přečteno: 1427× | GNU/Linux | Výběrový blog | poslední úprava: 4.9.2011 16:31

    Předem upozorňuju, že se GNU stream editor (GNU sed, dále jen sed) teprve učím. Najdete zde pro mě důležité poznámky týkající se tohoto programu. Tyto poznámky pochopitelně může využít kdokoli. Poznámka: Vím, že na Internetu existuje spousta materiálů k sedu. Já tyto moje poznámky píšu hlavně, protože se mi mnou psaný text lépe pamatuje.

    K čemu sed slouží

    Sed slouží k filtraci/transformaci textu vstupního "proudu". Pod pojmem proud si představte (textový) soubor nebo rouru.

    Nejčastěji se používá pro filtrování (transformaci) textu z roury. Tedy konstrukce typu program1 | sed...

    Jak sed zpracovává vstupní soubor

    1. sed přečte jednu řádku ze vstupního souboru (roury), přičemž odstrani případný znak konce řádky.
    2. Umístí takto upravenou řádku do vyrovnávací paměti (bufferu). Tuto vyrovnávací paměť budeme označovat jako "pattern space" (ta zpočátku nic neobsahuje, je prázdná).
    3. Jsou vykonány příkazy, přičemž každý z nich může mít k sobě přiřazenu "adresu" (podmíněný výraz). Takový příkaz se vykoná jenom tehdy, pokud je podmíněný výraz splněn.
    4. V případě dosažení konce skriptu sed předá (zobrazí) obsah pattern space do výstupního souboru ("proudu") (neplatí při použití volby -n), přičemž sed navrátí znak konce řádku, pokud ho v bodě (1) odstranil.
    5. Pokud nebylo dosaženo konce souboru, tak sed přejde na další řádku, smaže obsah pattern space a pokračuje bodem (1).

    sed skript

    Pokud chete použít sed, tak máte dvě možnosti:

    1. sed SKRIPT VSTUPNI_SOUBORY...
    2. sed VOLBY... [SKRIPT] [VSTUPNI_SOUBORY...]

    sed program se skládá z jednoho nebo více sed příkazů, které vkládáme pomocí volby -e (--expression) nebo pomocí -f (--file). Tyto volby lze použít vícekrát, tedy lze vložit více příkazů. Sed považuje za příkaz i první argument následující za poslední volbou v případě, že se nepoužije ani volba -e, ani -f, resp. ani jejich dlouhé varianty. A všem příkazům dohromady se říká SKRIPT.

    Obecná syntaxe příkazů

    [ADRESA1[,ADRESA2]]prikaz [ARGUMENTY]

    Adresa může být vyjádřena následujicími způsoby:

    Rozšíření GNU:

    ADRESA1,ADRESA2 takto můžete specifikovat "interval" -- jsou to všechny řádky mezi první řádkou odpovídající ADRESA1 a řádkou odpovídající ADRESA2 (včetně).

    Ještě pár speciálních možností (jedná se o GNU rozšíření):

    Vychytávkou je použití znaku '!' ve specifikaci adresy. Pokud tento znak připojíme na konec specifikace adresy, potom budou vybrány pouze řádky, které neodpovídají specifikaci adresy (rozsahu). Tzn. je to taková negace.

    Příkazy -- s (substitute)

    Syntaxe: s/REGULARNI_VYRAZ/CIM_NAHRADIT/VOLBY

    Poznámka: znak '/' může být nahrazen jiným znakem, např. s@REGULARNI_VYRAZ@CIM_NAHRADIT@VOLBY (zaměnili jsme znak '/' za '@'. Pokud se znak '/' má vyskytnout v REGULARNI_VYRAZ nebo v CIM_NAHRADIT, musí mu předcházet znak '\'. Pokud znak '/' nahradíme jiným, postupuje se obdobně.

    Jak název (substitute) napovídá, jedná se o příkaz sedu, který při každém průchodu modifikuje pattern space (viz výše) tak, že nahradí výraz odpovídající REGULARNI_VYRAZ za CIM_NAHRADIT.

    Vychytávkou je, že v CIM_NAHRADIT se můžeme odkazovat pomocí \C na C-tý zapamatovaný řetězec (C je přirozené číslo od 1 do 9), viz \(REGULARNI_VYRAZ\). V angličtině se tomu říká "back reference".

    Další vychytávkou je to, že pokud umístíme do CIM_NAHRADIT znak '&', tak je odkazem na celý řetězec odpovídající REGULARNI_VYRAZ.

    Volby příkazu s

    Příkaz s může být následován těmito volbami:

    Další často používané příkazy

    Závěr

    Takto jsem teoreticky vysvětlil pro mě nejdůležitější vlastnosti programu sed. Pokud vám chybí nějaké praktické příklady, tak zadejte do určitého vyhledávače např. "sed examples". Dále jsem vynechal výklad regulárních výrazů, protože je docela dobře znám. Případný zájemce ale najde na Internetu dostatek materiálů věnujících se regulárním výrazům.

           

    Hodnocení: 80 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    kralуk avatar 4.9.2011 14:15 kralуk | skóre: 26 | blog: Untitled
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Pěkný, ale přidal bych ještě příkaz t [label] - skočí na label (nebo na konec, když label chybí), pokud byla poslední substituce úspěšná. To se hodí když např. chci ze souboru ostranit nějaké řádky podle nějakého regexpu:
    sed -n 's/...//;t;p;'
    
    But to us there is but one God, plus or minus one.
    4.9.2011 14:24 Begleiter | skóre: 45 | blog: muj_blog | Doma
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě

    Abych se přiznal, tak zrovna tenhle příkaz mi není moc jasný. Teprve až ho pochopím, tak ho určitě přidám. Jinak díky.

    4.9.2011 20:43 Ondřej Kubečka | skóre: 28 | blog: datlovo | Ulm
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Zde dochází na to, že sed toho vlastně umí více, než je často vidět ve skriptech. sed -ne 's/...//;t;p;' zrovna není štastný příklad, protože téhož asi raději dosáhneme čitelnějším: sed -e '/.../d'. Ale jsou situace, kdy se hodí. b je prostý skok, t skok podmíněný (nahrazení s proběhlo od začátku zpracování toho řádku). Do téhle kategorie patří i "hold space" (g, G, h, H, x) a možnost spojovat řádky na vstupu (N).

    Pravdou nicméně je, že když na tyto prostředky dojde, možná je na čase zvážit jiný nástroj (třeba awk). sed sice mnoho dokáže, ale složitější konstrukce se dle mého špatně čtou. Takže pro pobavení/potěšení stojí za to zkusit čistě sed řešení problému, ale nemusí to být nutně řešení nejpraktičtější.

    Čeho bych se raději vyvaroval (prostě je to nepěkná forma (a trochu plýtvání prostředky) jsou pekelné roury tak časté v mnoha skriptech: grep ... | awk ... | sed ... | grep -v ... | tr ... | ... v libovolných sekvencích a opakováních. Všechny tyto úkony je lépe svěřit jednomu sed nebo awk skriptu.

    Pokud máte rád knihy a hezky utříděné informace: <http://oreilly.com/catalog/9781565922259>.
    4.9.2011 20:53 Begleiter | skóre: 45 | blog: muj_blog | Doma
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    xkucf03 avatar 5.9.2011 00:10 xkucf03 | skóre: 40 | blog: xkucf03
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Čeho bych se raději vyvaroval (prostě je to nepěkná forma (a trochu plýtvání prostředky) jsou pekelné roury tak časté v mnoha skriptech: grep ... | awk ... | sed ... | grep -v ... | tr ... | ... v libovolných sekvencích a opakováních. Všechny tyto úkony je lépe svěřit jednomu sed nebo awk skriptu.

    Z hlediska výkonu souhlas – ale co se týče přehlednosti, tak IMHO bude většinou vycházet líp, rozdělit to na víc menších srozumitelných částí, než jeden ultimátní skript. Jasně, dá se okomentovat, ale pokud to někdo píše na jednu řádku, tak mi přijdou přehlednější ty roury.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
    5.9.2011 00:37 Ondřej Kubečka | skóre: 28 | blog: datlovo | Ulm
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Pravda, tohle jsem nenapsal zcela jasně. Mám na mysli skript, kde bych to měl obecně nalámat pro lepší čitelnost. Co si člověk napíše na řádku (a nikdo ani on sám to po sobě nebude muset louskat), je mnohem volnější žánr. :)
    4.9.2011 18:10 Begleiter | skóre: 45 | blog: muj_blog | Doma
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě

    Hezká ukázka toho, jak může být sed užitečný (nastavení dynamického linkeru, který má gcc používat).

    4.9.2011 20:31 anonym
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Hezke shrnuti. Musim ale rict, ze od doby co jsem se trochu naucil perl, mi uz sed prijde torchu zbytecny - musim si pamatovat dalsi prepinace, specificky druh regexpu atd.

    No, mozna to stejne nekdy vyuziju, kdyz nebude nainstalovany perl.
    David Watzke avatar 4.9.2011 20:46 David Watzke | skóre: 73 | blog: Blog... | Silicon Hell
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    sed nepoužívá specifický druh regexpů, to spíš Perl má svoje rozšíření :-)
    www.Watzke.cz ... a nově (opět) i blog.Watzke.cz
    12.9.2011 09:20 CEST
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    sed nepoužívá specifický druh regexpů, to spíš Perl má svoje rozšíření :-)
    Tak tak, ale PCRE ma "hezci" syntaxi. Obvykle musim v sedu psat spoustu zpetnych lomitek v regexpech. Navic, kdyz uz umim perl, da se pouzit jako grep, sed, awk a neco navic (ikdyz awk toho umi taky dost).
    12.9.2011 10:11 Michal Kubeček | skóre: 67 | Luštěnice
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Obvykle musim v sedu psat spoustu zpetnych lomitek v regexpech.

    Protože z historických důvodů používá Basic RE. U GNU sedu to řeší přepínač -r

    4.9.2011 20:54 Begleiter | skóre: 45 | blog: muj_blog | Doma
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě

    Děkuju za ocenění.

    5.9.2011 12:02 jeleniste | skóre: 8 | blog: Prokustovo lože
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Príma
    Nejsem blbý, jen se hloupě ptám
    5.9.2011 13:23 jeleniste | skóre: 8 | blog: Prokustovo lože
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    jo, šikovnej je taky přepínač -i, kterym se přepíše původní soubor.
    Nejsem blbý, jen se hloupě ptám
    pavlix avatar 5.9.2011 13:59 pavlix | skóre: 42 | blog: pavlix | Praha
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Používám téměř denně, mimojiné na zónové soubory DNS.
    David Watzke avatar 5.9.2011 14:11 David Watzke | skóre: 73 | blog: Blog... | Silicon Hell
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Jojo, já taky, ale poděl je, že zruší symlink a udělá z něj normální soubor. Řešením by mělo být --follow-symlinks.
    www.Watzke.cz ... a nově (opět) i blog.Watzke.cz
    pavlix avatar 5.9.2011 14:29 pavlix | skóre: 42 | blog: pavlix | Praha
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Jojo, já taky, ale poděl je, že zruší symlink a udělá z něj normální soubor. Řešením by mělo být --follow-symlinks.
    To bych neviděl jako problém :), ale proti --follow-symlinks nic nemám.
    David Watzke avatar 5.9.2011 18:15 David Watzke | skóre: 73 | blog: Blog... | Silicon Hell
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Je to docela problém, když máš třeba vhosty apache v /etc/apache2/sites-available a v sites-enabled pouze odkazy na ty povolený a pak se rozhodneš in-place editovat soubor přes symlink... Podle mě by --follow-symlinks měla být implicitní volba. Ale důležitý je hlavně o tomto vědět, pak si na to člověk dá bacha.
    www.Watzke.cz ... a nově (opět) i blog.Watzke.cz
    kralуk avatar 5.9.2011 18:42 kralуk | skóre: 26 | blog: Untitled
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    To je imho kvůli standardu. Standard nic jako --follow-symlinks pochopitelně neobsahuje a gnu nástroje mají být (afaik) nadmnožinou standardu, takže odtud takovéhle podivnosti. Je bohužel mnohem jednoduší přidat si vlastní extension než snažit se pohnout se standardem, ačkoli by to bylo v tomhle i mnoha dalších případech lepší.
    But to us there is but one God, plus or minus one.
    pavlix avatar 5.9.2011 21:09 pavlix | skóre: 42 | blog: pavlix | Praha
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Já na takovéhle věci (například grep --color) používám aliasy. Funguje to a neovlivňuje to skripty.
    7.9.2011 22:33 Michal Kubeček | skóre: 67 | Luštěnice
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    To je imho kvůli standardu. Standard nic jako --follow-symlinks pochopitelně neobsahuje a gnu nástroje mají být (afaik) nadmnožinou standardu,

    Požadavek, aby implementace byla nadmnožinou standardu, nijak nebrání tomu, aby si přidala další přepínače, které POSIX nepožaduje - což je ostatně i samotný -i (přesněji: všechny kromě -e, -f a -n).

    7.9.2011 22:35 Michal Kubeček | skóre: 67 | Luštěnice
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Aha, trefil jsem se vedle. Ale i tady: vzhledem k tomu, že už samotný přepínač -i je GNU rozšířením, nelze default vysvětlovat POSIXem, ale jen zpětnou kompatibilitou.
    kralуk avatar 7.9.2011 22:37 kralуk | skóre: 26 | blog: Untitled
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Aha, mi uniklo že i -i není posix, no tak to je potom ještě blbější výmluva...
    But to us there is but one God, plus or minus one.
    xkucf03 avatar 7.9.2011 23:26 xkucf03 | skóre: 40 | blog: xkucf03
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    V tom případě by se měly odkazy sledovat a opak by šlo nastavit přepínačem.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
    pavlix avatar 5.9.2011 21:08 pavlix | skóre: 42 | blog: pavlix | Praha
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Je to docela problém, když máš třeba vhosty apache v /etc/apache2/sites-available a v sites-enabled pouze odkazy na ty povolený a pak se rozhodneš in-place editovat soubor přes symlink...
    Stačí nelézt, kam nemáš :).
    Podle mě by --follow-symlinks měla být implicitní volba.
    Podle mě spíše ne. Mám radši, když nástroje dělají přesně to, co jim řeknu.
    Ale důležitý je hlavně o tomto vědět, pak si na to člověk dá bacha.

    Tak.
    xkucf03 avatar 5.9.2011 21:23 xkucf03 | skóre: 40 | blog: xkucf03
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Mám radši, když nástroje dělají přesně to, co jim řeknu.
    No právě – proto bych tady spíš čekal, že dojde k úpravě souboru (ne navíc ke smazání odkazu a uložení obyčejného souboru místo něj). Argument s kompatibilitou beru – ale logičtější by to bylo takhle.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
    pavlix avatar 5.9.2011 21:42 pavlix | skóre: 42 | blog: pavlix | Praha
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    o právě – proto bych tady spíš čekal, že dojde k úpravě souboru (ne navíc ke smazání odkazu a uložení obyčejného souboru místo něj). Argument s kompatibilitou beru – ale logičtější by to bylo takhle.
    Mno mě to přijde logičtější naopak. Protože kdyby sed tu volbu neměl, soubor bych si přejmenoval, dal ho sedu na vstupu a výstupu dal jeho původní jméno. Měl bych tedy stejný výsledek, jako má sed -i, proto mi to přijde přirozenější.
    xkucf03 avatar 5.9.2011 21:52 xkucf03 | skóre: 40 | blog: xkucf03
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Ale zase kdybys to otevřel v kterémkoli jiném editoru (vim, emacs, mcedit, kate, gedit, jedit…), jak by se to chovalo? :-)
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
    pavlix avatar 6.9.2011 05:26 pavlix | skóre: 42 | blog: pavlix | Praha
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Nesmíš se nechat zmást tím, že to má v názvu ed.
    xkucf03 avatar 6.9.2011 09:32 xkucf03 | skóre: 40 | blog: xkucf03
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Jednou je to stream editor, tak je to stream editor :-)

    A nejde jenom o editory – ty symbolické odkazy respektuje prakticky každý program – nebo když do toho odkazu nasměruji standardní výstup (třeba příkazu echo ahoj), tak se taky zapíše skrze odkaz do cílového souboru – nepřepíše se ten odkaz obyčejným souborem.

    Navíc sed zachovává přístupová práva – taky proto bych čekal, že zachová symbolický odkaz.

    Zajímavě se to chová taky při použití pevných odkazů:
    $ echo 111 > soubor1.txt
    $ ln soubor1.txt soubor2.txt 
    $ sed -i s/1/2/g soubor2.txt 
    $ cat soubor2.txt
    222
    $ cat soubor1.txt
    111
    Opět to původní soubor smaže a vytvoří úplně nový – místo aby to editoval „na místě“ v tom stejném souboru.

    Beru to prostě jako záludnost, na kterou je potřeba si dávat pozor, nějakou logiku v tom ale nevidím (kromě té snahy o kompatibilitu, což už jsem tu psal).
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
    pavlix avatar 6.9.2011 12:30 pavlix | skóre: 42 | blog: pavlix | Praha
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Jo, jenže ty se zaměřuješ na slovo editor, které je spíše nadsázkou, zatímco já si plně uvědomuju slovo stream.
    Navíc sed zachovává přístupová práva – taky proto bych čekal, že zachová symbolický odkaz.
    Navrácení přístupových práv je bezpečné, u toho následování linků si tak jistý nejsem.
    Opět to původní soubor smaže a vytvoří úplně nový – místo aby to editoval „na místě“ v tom stejném souboru.
    On sed je proudový, takže by bylo dost zvláštní, kdyby něco editoval opravdu na místě.
    Beru to prostě jako záludnost, na kterou je potřeba si dávat pozor, nějakou logiku v tom ale nevidím (kromě té snahy o kompatibilitu, což už jsem tu psal).
    Kompatibilita je pouze zachvávání určitého stavu, ne jeho vytváření :).
    kralуk avatar 6.9.2011 12:32 kralуk | skóre: 26 | blog: Untitled
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Jednou je to stream editor, tak je to stream editor :-)
    Tak tak, nikoli file editor :p ;-)

    Nadruhou stranu souhasím, že když in-place, tak teda in-place, čili jako každá jiná slušná utilita...
    But to us there is but one God, plus or minus one.
    pavlix avatar 6.9.2011 12:48 pavlix | skóre: 42 | blog: pavlix | Praha
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Já to in-place nikdy nebral tak úplně in-place vzhledem k souboru, jako spíš vzhledem k aktuálnímu adresáři, kde hromadnou editaci provádím. Záleží na úhlu pohledu.
    5.9.2011 21:39 Ondřej Kubečka | skóre: 28 | blog: datlovo | Ulm
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Jojo, já taky, ale poděl je, že zruší symlink a udělá z něj normální soubor. Řešením by mělo být --follow-symlinks.
    Nebo použít ed. Poštvat ho na daný soubor k editaci a instrukce mu nakrmit na standardní vstup (třeba pomocí here documents) ;)
    5.9.2011 22:52 Aleš Kapica | skóre: 40 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    Jo. Právě na tohle ed používám. Viz můj postarší manuálek pro ed na wikibooks. Zrovna se mi nedávno hodil.
    5.9.2011 14:48 Begleiter | skóre: 45 | blog: muj_blog | Doma
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    12.9.2011 09:22 CEST
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě
    zajimave prikazy jsou take "h"/"H' a "g"/"G" - kopirovani textu mezi pattern space a hold space
    12.9.2011 10:09 Begleiter | skóre: 45 | blog: muj_blog | Doma
    Rozbalit Rozbalit vše Re: sed -- poznámky (nejen) pro mě

    Založit nové vláknoNahoru

    ISSN 1214-1267   Powered by Hosting 90 Server hosting
    © 1999-2012 Argonit s. r. o. Všechna práva vyhrazena.