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í
×
    dnes 17:22 | Nová verze

    Raspberry Pi Connect, tj. oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče, byla vydána v nové verzi 2.5. Nejedná se už o beta verzi.

    Ladislav Hagara | Komentářů: 0
    dnes 15:22 | Komunita

    Google zveřejnil seznam 1272 projektů (vývojářů) od 185 organizací přijatých do letošního, již jednadvacátého, Google Summer of Code. Plánovaným vylepšením v grafických a multimediálních aplikacích se věnuje článek na Libre Arts.

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

    Byla vydána (𝕏) dubnová aktualizace aneb nová verze 1.100 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.100 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    včera 18:00 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.

    Ladislav Hagara | Komentářů: 0
    včera 01:22 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 00:55 | Zajímavý projekt

    PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.

    vlk | Komentářů: 0
    7.5. 19:44 | Nová verze

    Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    7.5. 17:33 | Nová verze

    Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.

    Ladislav Hagara | Komentářů: 0
    7.5. 05:33 | Komunita

    Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.

    Ladislav Hagara | Komentářů: 17
    7.5. 03:55 | Komunita

    sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.

    Ladislav Hagara | Komentářů: 0
    Jaký filesystém primárně používáte?
     (57%)
     (1%)
     (8%)
     (22%)
     (4%)
     (2%)
     (2%)
     (1%)
     (1%)
     (3%)
    Celkem 565 hlasů
     Komentářů: 26, poslední včera 09:58
    Rozcestník

    Dotaz: Příkaz/script - Vyhledání a nahrazení slov (sed, grep, find)

    9.9.2015 23:58 Mr. Mrkev
    Příkaz/script - Vyhledání a nahrazení slov (sed, grep, find)
    Přečteno: 459×

    Dobrý den,

    mám dotaz ohledně vyhledání slov v různých textových dokumentech jedné složky. Lze sestavit příkaz nebo i více příkazů (.sh), které by dokázali vyhledat všechny textové soubory ve složce a ve všech nahradit určité slovo jiným slovem (jinými slovy), ale pozor to slovo/ta slova by bylo z jiného textového souboru?

    O co mně přesně jde:

    Kdybych měl více textových souborů s jedním stejným slovem (jinak pojemenovaný, ale stejný "mustr") a toto slovo bych chtěl v každém souboru zvlášť nahradit jiným slovem z druhého textového souboru, tak jak na to? Jelikož je to krkolomné, tak uvedu příklad:

    ***

    Např.: V 5 souborech je stejné slovo "word". Toto slovo bych chtěl nahradit v každém souboru zvlášť různými slovy z šestého souboru, kde by byla uložena takto:

    jedna

    dva

    tři

    čtyři

    pět

    Výsledek:

    // Původních 5 souborů tedy: ..... word .....

    // Upravené:

    1. soubor = .... jedna ....

    2. soubor = .... dva ....

    ....

    ***

    Prozatím jsem částečně nalezl a upravil tento příkaz, který funguje na nalezení a nahrazení jednoho slova přímo zadaným jedním slovem (textem), ale jak jsem psal, tak bych ho potřeboval "upravit"/nahradit/...

    find /cesta/do/adresáře -type f -print0 | xargs -0 sed -i 's|hledaný text|nový text|g'

    Varianty, které nefungují (prozatím jsem zkoušel jen nahradit 1 slovo 1 slovem z druhého souboru):

    // "file" - měl být soubor ten soubor s náhradním slovem

    // "22222" - jsem chtěl nahradit

    find ./ -type f -print0 | xargs -0 sed -i 's|22222|$(sed -n 1p file)|g'

    grep -rl '22222' ./ | xargs sed -i 's/22222/$(sed -n 1p file)/g'

    sed -e "s/22222/$(sed -n 1p file)/" soubor.txt

    Šlo by to nějak? Nebo si to už musím naprogramovat např. v C...? Sám bych byl raději, kdyby šel sestavit nějaký příkaz či script.

    Předem Vám děkuji za Vaše rady!

    S pozrdavem a přáním pěkného zbytku týdne

    Jirka


    Řešení dotazu:


    Odpovědi

    Jendа avatar 10.9.2015 05:07 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Příkaz/script - Vyhledání a nahrazení slov (sed, grep, find)
    i=1
    word="word"
    for f in soubory; do
      tgt=`head -n $i šestý | tail -n 1`
      sed -ire "s/$word/$tgt/g" "$f"
      i=$(( $i + 1 ))
    done
    (nezkoušeno)
    11.9.2015 10:40 Mr. Mrkev
    Rozbalit Rozbalit vše Re: Příkaz/script - Vyhledání a nahrazení slov (sed, grep, find)
    Děkuji, s mírnou úpravou jsem hledal přesně toto! Využívám a budu využívat dále + nabalovat další...
    jose17 avatar 10.9.2015 12:17 jose17 | skóre: 44 | blog: Joseho_blog | Bratislava
    Rozbalit Rozbalit vše Re: Příkaz/script - Vyhledání a nahrazení slov (sed, grep, find)
    v pythone trebars takto:
    #!/usr/bin/python
    import os, fileinput, re
    zdroj = open('/tmp/siesty.txt')
    
    for (koren, adresare, subory) in os.walk('adresar_so_subormi'):
         for subor in subory:
             print "menim",subor
             nahrada = zdroj.readline().rstrip()
             print "nahradim 'word' za",nahrada
             for riadok in fileinput.FileInput(os.path.join(koren,subor), inplace=1):
                 print re.sub('word',nahrada, riadok),
    
    Ja vim, on vi, ty nano!
    11.9.2015 10:41 Mr. Mrkev
    Rozbalit Rozbalit vše Re: Příkaz/script - Vyhledání a nahrazení slov (sed, grep, find)
    Také ti děkuji, ač využiju/vám předchozí řešení, tak tvé si také uložím. Třeba se časem bude hodit.

    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.