abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 18:11 | Nová verze

    Programovací jazyk Python byl vydán v nové major verzi 3.14.0. Podrobný přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 2
    včera 16:33 | IT novinky

    Bylo oznámeno, že Qualcomm kupuje Arduino. Současně byla představena nová deska Arduino UNO Q se dvěma čipy: MPU Qualcomm Dragonwing QRB2210, na kterém může běžet Linux, a MCU STM32U585 a vývojové prostředí Arduino App Lab.

    Ladislav Hagara | Komentářů: 1
    včera 15:55 | Nová verze

    Multiplatformní open source voxelový herní engine Luanti byl vydán ve verzi 5.14.0. Podrobný přehled novinek v changelogu. Původně se jedná o Minecraftem inspirovaný Minetest v říjnu loňského roku přejmenovaný na Luanti.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Nová verze

    Byla vydána nová stabilní verze 6.10 (YouTube) multiplatformního frameworku a GUI toolkitu Qt. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    6.10. 23:55 | Komunita

    Ubuntu 26.04 LTS bude (𝕏) Resolute Raccoon (rezolutní mýval).

    Ladislav Hagara | Komentářů: 3
    6.10. 21:00 | Nová verze

    Netwide Assembler (NASM) byl vydán v nové major verzi 3.00. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    6.10. 20:11 | Komunita

    Linuxová distribuce Frugalware (Wikipedie) ke konci roku 2025 oficiálně končí.

    Ladislav Hagara | Komentářů: 0
    6.10. 17:22 | Nová verze

    Byla vydána nová verze 3.0.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP bude brzy k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    6.10. 16:11 | IT novinky

    Americký výrobce čipů AMD uzavřel s americkou společností OpenAI smlouvu na několikaleté dodávky vyspělých mikročipů pro umělou inteligenci (AI). Součástí dohody je i předkupní právo OpenAI na přibližně desetiprocentní podíl v AMD.

    Ladislav Hagara | Komentářů: 1
    6.10. 12:22 | Nová verze Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (39%)
     (46%)
     (15%)
     (17%)
     (21%)
     (15%)
     (18%)
     (16%)
     (16%)
    Celkem 191 hlasů
     Komentářů: 12, poslední 4.10. 20:35
    Rozcestník

    Dotaz: Jak přesměrovat -exec ve find

    3.4.2009 10:22 ondra
    Jak přesměrovat -exec ve find
    Přečteno: 574×

    Ahoj.

    Je možné nějak přesměrovat výstup příkazu volaného v -exec příkazu find? Potřebuji něco jako

    find . -name 'nejaka maska' -exec sed -e 'neco' {} > vystup.sedu \;

    Pokud vím, tak sedu nemůžu vnutit jméno výstupního souboru.

    Díky.

     

    Odpovědi

    3.4.2009 10:36 l4m4
    Rozbalit Rozbalit vše Re: Jak přesměrovat -exec ve find
    find . -name 'nejaka maska' -print0 | xargs -0 sed -s -e 'neco' >vystup.sedu
    3.4.2009 10:37 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Jak přesměrovat -exec ve find
    Myslím, že to nepotřebujete. Stačí
    find . -name 'nejaka maska' -exec sed -e 'neco' {}  \; > vystup.sedu
    
    Ale pokud byste to opravdu chtěl udělat, jak píšete (přesměrování uvnitř findu), spusťte v -exec nový shell. Něco nazpůsob
    find . -name 'nejaka maska' -exec /bin/bash -c sed -e 'neco' {} > vystup.sedu  \;
    
    3.4.2009 10:51 l4m4
    Rozbalit Rozbalit vše Re: Jak přesměrovat -exec ve find
    Jelikož {} se ve výrazu -exec může objevit právě jednou, a to už jsme vyplýtvali na argument sedu, je vystup.sedu konstanta výrazu. Takže ji lze vytknout a nespouštět zbytečné procesy...

    Další rozdíl tohoto a mého řešení je, že mně to zapíše výstup zpracování všech nalezených souborů, toto akorát z toho posledního nalezeného...
    3.4.2009 10:52 ondra
    Rozbalit Rozbalit vše Re: Jak přesměrovat -exec ve find

    Díky za rady. Asi jsem to špatně popsal. Potřebuji přesměrovat každý sed zvlášť. Něco jako

    find . -name 'nejaka maska' -exec sed -e 'neco' {} > {}.out \;

     

    3.4.2009 11:03 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: Jak přesměrovat -exec ve find
    Pokud jsou ty soubory rozumně pojmenované, nebyl by jednodušší normální while read cyklus... - něco jako
    fine . ... | while read fname; do
       sed -e 'neco' "$fname" >"$fname.out";
    done
    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    3.4.2009 11:13 ondra
    Rozbalit Rozbalit vše Re: Jak přesměrovat -exec ve find

    Toto bude asi pro mě nejschůdnější. Díky moc.

    David Watzke avatar 3.4.2009 14:27 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak přesměrovat -exec ve find
    V tomhle případě můžou bejt soubory pojmenovaný i docela nerozumně a stejně to bude fungovat.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    3.4.2009 14:57 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: Jak přesměrovat -exec ve find
    i docela nerozumně
    Ale spolehlivě to rozhodí znak nového řádku v názvu (a bohužel jsem zažil i takhle pojmenované soubory)...
    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    David Watzke avatar 3.4.2009 15:23 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak přesměrovat -exec ve find
    Aha, no tak taková zhovadilost pak už ovšem rozhodí ledacos.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    3.4.2009 15:49 l4m4
    Rozbalit Rozbalit vše Re: Jak přesměrovat -exec ve find
    Když už, tak už. find -print0 | xargs -0 prostě funguje. Nač vymýšlet blbosti...
    David Watzke avatar 3.4.2009 15:53 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak přesměrovat -exec ve find
    Jo, funguje, ale v tomhle případě je to celkem k ničemu, protože tím nevyřešíš to co chce tazatel.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    3.4.2009 11:08 l4m4
    Rozbalit Rozbalit vše Re: Jak přesměrovat -exec ve find
    Viz moji předchozí odpověď o jediném {}. Spuštěný příkaz musí tedy být něco, co vezme vstup a vytvoří automaticky jinak pojmenovaný výstup (a v tom případě nejlépe libovolné množství vstupních argumentů a použít xargs, ze stejného důvodu jako výše).

    Pak ještě lze požít kluge typu

    IFS=$'\n'; for x in $(find ...); do něco s $x; done
    3.4.2009 11:21 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Jak přesměrovat -exec ve find
    Tak si ty příkazy, které píšete za --exec, přepište do nějakého skriptu a z findu spouštějte ten.

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.