Portál AbcLinuxu, 10. května 2025 01:56

Dotaz: Ako na sed?

13.6.2013 01:23 Anton, zajtra Vasil
Ako na sed?
Přečteno: 513×
Odpovědět | Admin
Mam vela suborov, v ktorych su rozne riadky. Z kazdeho suboru potrebujem odstranit riadok, kde sa nachadza "XY" a prepisat povodny subor s novou verziou.

Pouzil som na to sed, nasledovne
sed '/XY/d' input > output
. Vysledok je presne taky aky chcem, ak dam ale
sed '/XY/d' input > input
tak novy subor zostane prazdny.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (Vojtěch Horký)
13.6.2013 07:41 Program
Rozbalit Rozbalit vše Re: Ako na sed?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Důvod je ten, že se výstupní soubor zřejmě otevře pro zápis (přepis) dřív než pro čtení. Takhle to nejde, ale řešením je parametr -i sedu (viz man sed).
Řešení 1× (Vojtěch Horký)
13.6.2013 07:50 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ako na sed?
se výstupní soubor zřejmě otevře pro zápis (přepis) dřív než pro čtení

Ono to dost dobře ani nemůže být jinak, protože pro zápis ho musí otevřít už shell ještě před spuštěním příkazu, zatímco pro čtení až sed na základě svého parametru. Ale ani kdyby to bylo naopak, např.

  sed ... <file >file

tak by to fungovat nemohlo, protože přesměrování soubor nenahrazuje (ve smyslu smazání adresářové položky a vytvoření nového) ale přepisuje (ve smyslu otevření existujícího souboru a přepsání jeho obsahu).

13.6.2013 20:15 Program
Rozbalit Rozbalit vše Re: Ako na sed?
Fungovat by to teoreticky mohlo (kdyby to bylo napsané jinak), ale i tak by nebylo dobré se na to spoléhat. Ten druhý případ by prostě vygeneroval buď smyčku, nebo nějaký dodrbanec, takže je spíš lépe, že to tak nefunguje.
13.6.2013 22:26 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Ako na sed?
Fail - `Dodrbanec` detected.
Reset.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
14.6.2013 22:13 Vasil, zajtra Vít
Rozbalit Rozbalit vše Re: Ako na sed?
Ok, takze ako na to?
14.6.2013 22:20 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Ako na sed?
Goto №1
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.