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 01:44 | Komunita

    Spotify prostřednictvím svého FOSS fondu rozdělilo 70 000 eur mezi tři open source projekty: FFmpeg obdržel 30 000 eur, Mock Service Worker (MSW) obdržel 15 000 eur a Xiph.Org Foundation obdržela 25 000 eur.

    Ladislav Hagara | Komentářů: 1
    včera 18:11 | Zajímavý software

    Nazdar! je open source počítačová hra běžící také na Linuxu. Zdrojové kódy jsou k dispozici na GitHubu. Autorem je Michal Škoula.

    Ladislav Hagara | Komentářů: 0
    včera 16:55 | Nová verze

    Po více než třech letech od vydání verze 1.4.0 byla vydána nová verze 1.5.0 správce balíčků GNU Guix a na něm postavené stejnojmenné distribuci GNU Guix. S init systémem a správcem služeb GNU Shepherd. S experimentální podporou jádra GNU Hurd. Na vývoji se podílelo 744 vývojářů. Přibylo 12 525 nových balíčků. Jejich aktuální počet je 30 011. Aktualizována byla také dokumentace.

    Ladislav Hagara | Komentářů: 5
    včera 15:44 | Zajímavý software

    Na adrese gravit.huan.cz se objevila prezentace minimalistického redakčního systému GravIT. CMS je napsaný ve FastAPI a charakterizuje se především rychlým načítáním a jednoduchým ukládáním obsahu do textových souborů se syntaxí Markdown a YAML místo klasické databáze. GravIT cílí na uživatele, kteří preferují CMS s nízkými nároky, snadným verzováním (např. přes Git) a možností jednoduchého rozšiřování pomocí modulů. Redakční

    … více »
    2012 | Komentářů: 0
    včera 12:55 | Zajímavý software

    Tým Qwen (Alibaba Cloud) uvolnil jako open-source své modely Qwen3‑TTS pro převádění textu na řeč. Sada obsahuje modely VoiceDesign (tvorba hlasu dle popisu), CustomVoice (stylizace) a Base (klonování hlasu). Modely podporují syntézu deseti různých jazyků (čeština a slovenština chybí). Stránka projektu na GitHubu, natrénované modely jsou dostupné na Hugging Face. Distribuováno pod licencí Apache‑2.0.

    NUKE GAZA! 🎆 | Komentářů: 0
    včera 01:11 | Nová verze

    Svobodný citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 8. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    22.1. 16:55 | Nová verze

    Byla vydána verze 1.93.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    22.1. 14:00 | Komunita

    Svobodný operační systém ReactOS (Wikipedie), jehož cílem je kompletní binární kompatibilita s aplikacemi a ovladači pro Windows, slaví 30. narozeniny.

    Ladislav Hagara | Komentářů: 8
    22.1. 11:00 | IT novinky

    Společnost Raspberry Pi má nově v nabídce flash disky Raspberry Pi Flash Drive: 128 GB za 30 dolarů a 256 GB za 55 dolarů.

    Ladislav Hagara | Komentářů: 2
    22.1. 10:22 | Zajímavý software

    Technologie Skip pro multiplatformní mobilní vývoj, která umožňuje vývojářům vytvářet iOS a Android aplikace z jediné Swift a SwiftUI kódové základny, se s vydáním verze 1.7 stala open source.

    Ladislav Hagara | Komentářů: 6
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (6%)
     (0%)
     (10%)
     (21%)
     (3%)
     (5%)
     (2%)
     (11%)
     (35%)
    Celkem 585 hlasů
     Komentářů: 17, poslední 22.1. 15:24
    Rozcestník

    Dotaz: SED substituce s $i - nefunkcni

    22.12.2005 17:37 Filip Huska
    SED substituce s $i - nefunkcni
    Přečteno: 304×

    Dobry den,

    jde mi o script do cronu, kde kazda skupina web* bude mit uzivatele www-data. Nejde mi o jina reseni jako ulozit do druheho souboru a diffnout, ci podobne, jde mi o reseni ciste, tzn. presne tohle ... ovsem sed mi nebere neznamou. Jak udelat, aby ji sed bral ?

    #!/bin/sh

    for i in `grep web* /home/rexxor/gransy/group | grep -v www-data` ;do

    sed -e s/$i/$i,www-data/ /home/rexxor/gransy/group

    done

    Odpovědi

    22.12.2005 17:55 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: SED substituce s $i - nefunkcni
    Ahoj,

    tak trochu jsem nepochopil co je cílem dané oprace (jak vypadají vstupní data, jak má vypadat výstup), ale to je jedno...

    Když nepoužiješ cron, tak ti ten skriptík funguje?

    Co to hlásí za chybu? Třeba ten skript pracuje úplně správně, jen ty očekvýš, že bude dělat něco jiného :-)
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    22.12.2005 18:03 Filip Huska
    Rozbalit Rozbalit vše Re: SED substituce s $i - nefunkcni

    Zkusim to rozebrat ..

    Vyber vsechny skupiny zacinajici web ze souboru group a neobsahujici souslovi www-data (prvni radek for).


    Pro vsechny tyto vybrane skupiny pridej na konec "www-data" (prirad uzivatele)a zapis je zpet do group.

    Problem : sed -e s/$i ...

    Nenacita se neznama z i, ale $i se nacita jako string.

    22.12.2005 18:26 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: SED substituce s $i - nefunkcni
    Nebylo by lepší vše udělat přímo sedem místo toho for cyklu?

    sed -e s/... určitě nic do souboru nezapíše, vypíše to na standarní výstup.
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    22.12.2005 18:45 Filip Huska
    Rozbalit Rozbalit vše Re: SED substituce s $i - nefunkcni

    Nechete si ten script nejdrive odzkouset bez promenych ?

    Ja bych nerad byl nezdvorily, ale zpochybnenim problemu dany problem nevyresite a script je bez promenych zcela funkcni. Jde mi o to, inkludovat cistou formou $i do sedu, coz je pochopitelne.


    Uvedeny priklad je osekany jen jak je to mozne, aby neztratil smysl a nemusel jsem nikoho zahlcovat zbytecnymy podrobnostmi.

    Muj problem zni jasne : substituce v sedu s promenou $i na $i,www-data
    Vstup - soubor s daty :

    web1...........cricket

    web2...........cricket

    web3...........www-data,cricket


    Vystup - ten samy soubor :

    web1 ..........cricket,www-data

    web2...........cricket,www-data

    web3...........www-data,cricket

    22.12.2005 18:58 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: SED substituce s $i - nefunkcni
    Nevím proč bych si měl skrip zkoušet bez proměných, podle mého ten skript funguje a dělá přesně to co má:
    [tsunami@vodik]$ cat /tmp/a
    web1:cricket
    web2:cricket
    web3:www-data,cricket
    
    
    [tsunami@vodik]$ for i in `grep web* /tmp/a | grep -v www-data`; do sed -e s/$i/$i,www-data/ /tmp/a ; done
    web1:cricket,www-data
    web2:cricket
    web3:www-data,cricket
    web1:cricket
    web2:cricket,www-data
    web3:www-data,cricket
    
    Jak jsem psal, ten sed nemodifikuje soubor, ale vypisuje to na standardní výstup.
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    22.12.2005 19:07 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: SED substituce s $i - nefunkcni
    Předpokládám, že tohle bude třeba lepší (bez for cyklu, ale je to s dočasným souborem):
    [tsunami@vodik]$ cat /tmp/a
    web1:cricket
    web2:cricket
    web3:www-data,cricket
    
    [tsunami@vodik]$ sed -e /www-data/\!s/^web.*/\&,www-data/ /tmp/a >/tmp/tmp_soubor.$$; mv /tmp/sed_temp_soubor.$$ /tmp/a
    
    [tsunami@vodik]$ cat /tmp/a
    web1:cricket,www-data
    web2:cricket,www-data
    web3:www-data,cricket
    
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    22.12.2005 19:13 Dunric | skóre: 21
    Rozbalit Rozbalit vše Re: SED substituce s $i - nefunkcni
    Ta proměnná i se určitě expanduje.

    Nevrací ti ten grep náhodou hodnotu např. obsahující mezeru nebo lomítko ?

    Minimálně bych kvůli mezerám uzavřel výraz pro sed do uvozovek.

    sed -e "s/$i/$i,www-data/" /home/rexxor/gransy/group
    In the garden sleeps a messenger ·
    22.12.2005 22:45 Dunric | skóre: 21
    Rozbalit Rozbalit vše Re: SED substituce s $i - nefunkcni
    Ještě jsem si všiml následující chyby, která může být příčinou problému.
    for i in `grep web* /home/rexxor/gransy/group | grep -v www-data` ;do
    Protože je grepu předáván vzorek obsahující hvězdičku bez uvozovek, shell se ji pokusí expandovat a pokud v adresáři, ze kterého se spouští, existuje(í) soubory začínajicí znaky web, jejich název se dosadí do vzorku.
    In the garden sleeps a messenger ·
    22.12.2005 23:24 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: SED substituce s $i - nefunkcni
    A pokud ji shell neexpanduje, tak je tam naprosto zbytečně (leda že by tazatel chtěl hledat řetězec 'we').
    22.12.2005 23:25 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: SED substituce s $i - nefunkcni
    Hezký, tak sem se ten for cyklus a grep snažil ignorovat, že jsem si ani nevšim téhle chyby :-)

    Každopádně to nic nemění na tom, že je ten for zbytečný, protože procházet sedem pro každý nalezený řetězec celý soubor je nesmysl. Lepší je vše nahradit najednou.
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    23.12.2005 13:45 Filip Huska
    Rozbalit Rozbalit vše Re: SED substituce s $i - nefunkcni
    Velice Vam dekuji vsem za moznosti ... vyreseno :-)

    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.