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

    Byla vydána (𝕏) nová major verze 17 softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech GitLab (Wikipedie). Představení nových vlastností i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | Komunita

    Sovereign Tech Fund, tj. program financování otevřeného softwaru německým ministerstvem hospodářství a ochrany klimatu, podpoří vývoj FFmpeg částkou 157 580 eur. V listopadu loňského roku podpořil GNOME částkou 1 milion eur.

    Ladislav Hagara | Komentářů: 0
    včera 01:55 | Komunita

    24. září 2024 budou zveřejněny zdrojové kódy přehrávače Winamp.

    Ladislav Hagara | Komentářů: 8
    16.5. 23:33 | Nová verze

    Google Chrome 125 byl prohlášen za stabilní. Nejnovější stabilní verze 125.0.6422.60 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 9 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    16.5. 21:11 | Nová verze

    Textový editor Neovim byl vydán ve verzi 0.10 (𝕏). Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    16.5. 20:55 | Nová verze

    Byla vydána nová verze 6.3 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.15.

    Ladislav Hagara | Komentářů: 0
    16.5. 13:33 | IT novinky

    Dnes ve 12:00 byla spuštěna první aukce domén .CZ. Zatím největší zájem je o dro.cz, kachnicka.cz, octavie.cz, uvycepu.cz a vnady.cz [𝕏].

    Ladislav Hagara | Komentářů: 9
    16.5. 13:22 | Nová verze

    JackTrip byl vydán ve verzi 2.3.0. Jedná se o multiplatformní open source software umožňující hudebníkům z různých částí světa společné hraní. JackTrip lze instalovat také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    16.5. 12:22 | Pozvánky

    Patnáctý ročník ne-konference jOpenSpace se koná 4. – 6. října 2024 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytváří všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 0
    16.5. 03:11 | Nová verze

    Program pro generování 3D lidských postav MakeHuman (Wikipedie, GitHub) byl vydán ve verzi 1.3.0. Hlavní novinkou je výběr tvaru těla (body shapes).

    Ladislav Hagara | Komentářů: 9
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (74%)
     (5%)
     (11%)
     (10%)
    Celkem 300 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    Rozcestník

    Dotaz: awk jednoduchá string operace

    16.10.2011 10:35 jarekkkk
    awk jednoduchá string operace
    Přečteno: 273×
    Dobrý den, potřebuji ve své aplikaci uživateli zobrazovat číslo verze gcc a nevím jak mám vyselektovat to číslo z výpísu version:
    gcc --version
    
    gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
    Copyright (C) 2010 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    S awk neumím, děkuji za ochotu...

    Řešení dotazu:


    Odpovědi

    pepe_ avatar 16.10.2011 11:09 pepe_ | skóre: 48
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace

    Střílím od boku

    #!/bin/bash
    verze_gcc=$(`which gcc` --version | grep 'gcc' | awk '{printf $4 };')
    if [ -n verze_gcc ];then
    echo "Verze GCC je $verze_gcc"
    else
    echo "GCC není nainstalováno"
    fi

    pepe_ avatar 16.10.2011 11:12 pepe_ | skóre: 48
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace

    oprava uvozovek

     

    #!/bin/bash
    verze_gcc=$(`which gcc` --version | grep 'gcc' | awk '{printf $4 };')
    if [ -n "$verze_gcc" ];then
    echo "Verze GCC je $verze_gcc"
    else
    echo "GCC není nainstalováno"
    fi

    16.10.2011 11:21 l4m4
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace
    Co má vylepšit

    `which gcc`

    oproti

    gcc

    ? Nepočítaje to, že při neexistujícím gcc první chybovou hlášku vyhodí už to which a následně se to pokusí spustit program jménem --version, což lze za zlepšení považovat jen stěží.

    Jaký je význam spoustění awk na výstpu grepu?

    Navíc to IMO vůbec neřeší problém, tedy co za roztodivné věci se mohou objevit v té závorce.
    pepe_ avatar 16.10.2011 11:26 pepe_ | skóre: 48
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace

    přidá tam i cestu k gcc

     

    pepe@PC-Pepe:~$ which gcc
    /usr/bin/gcc

    pepe_ avatar 16.10.2011 11:28 pepe_ | skóre: 48
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace

    pepe@PC-Pepe:~$ verze_gcc=$(`which lolo` --version | grep 'gcc' | awk '{printf $4 };')
    --version: command not found
    pepe@PC-Pepe:~$ echo $verze_gcc

    pepe@PC-Pepe:~$

     

    takze ikdyz gcc neni tak hlasku to vyplni ale script pozna ze gcc neni protoze promena verze_gcc nebude obsahovat nic

    pepe_ avatar 16.10.2011 11:31 pepe_ | skóre: 48
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace

    pokud chces zamezit i vypsani chyby tak is posli do NULL

     

     

    verze_gcc=$(`which gcc` --version 2> /dev/null | grep 'gcc' | awk '{printf $4 };')

    16.10.2011 11:39 l4m4
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace
    A to je konkrétně k čemu? Celé to funguje stejně (ne-li lépe) i bez which.
    16.10.2011 11:36 oiufoj
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace
    gcc --version | awk '{if( /^gcc/ ) print $NF; }'

    (pricems predpokladame, ze cislo verze je posledni pole na radku zacinajicim gcc).
    16.10.2011 11:47 l4m4
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace
    Jenže to není ani náhodou.

    GCC vypisuje jako verzi dost divoké věci. Např. na běžných linuxových distribucích to může vypadat:
    gcc (Debian 4.3.2-1.1) 4.3.2
    gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9)
    gcc (SUSE Linux) 4.5.0 20100604 [gcc-4_5-branch revision 160292]
    gcc (SUSE Linux) 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036]
    gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)
    etc.
    
    16.10.2011 11:37 l4m4
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace
    (a) Tvoje aplikace je v awk. V tom případě bych předpokládal, že umíš v awk použít regulární výraz a verzi z toho vyknousnout.

    (b) Tvoje aplikace není v awk. V tom případě nerozumím požadavku na použití awk. Nemůže postě aplikace přečíst výstup gcc --version a vzít z něj verzi?

    Nicméně abych jen nekafral, fungovat by mohlo toto:
    awk '(NR==1){print gensub(/^gcc (\([^)]*\) *)?([0-9]+\.[^ ]+) .*/,"\\2","g")}'
    
    Vypíše se čistě verze, bez závorek před, po, dat a kdovíčeho. Pokud závorek před může být víc (neviděl jsem), tak by se ? musel nahradit *.
    16.10.2011 11:55 l4m4
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace
    No, takže na Ubuntu není dost obecné ani tohle. Toto už by snad mohlo:
    awk '{gsub(/\([^)]*\)/,"");gsub(/\[[^]]*\]/,"");print gensub(/.* ([0-9]+\.[^ ]+).*/,"\\1","g")}'
    
    16.10.2011 12:09 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace
    S awk neumím ... tak použijte sed :-)
    gcc --version | sed -n -e 's/^gcc ([^)]*) \([1-9.]*\)$/\1/p'
    nebo kratší méně přesné:
    gcc --version | sed -ne 's/^gcc.* \([1-9.]*\)$/\1/p'
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    16.10.2011 12:26 l4m4
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace
    Funguje pouze na jediném z uvedených pěti příkladů výstupu gcc --version...
    16.10.2011 12:40 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace
    Taky jsem to dělal jen na uvedený výstup :-)
    gcc --version | sed -ne 's/^gcc.*\s\([0-9]\.[0-9].[0-9]\)\($\|\s.*$\)/\1/p'
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    16.10.2011 12:48 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace
    Drobná oprava: gcc --version | sed -ne 's/^gcc.*\s\([0-9]\.[0-9]\.[0-9]\)\($\|\s.*$\)/\1/p'
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    16.10.2011 13:30 benn | skóre: 18
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace
    A zjištění verze gcc pomocí dumpversion se ti nehodí?
    gcc -dumpversion
    
    Jinak v aplikaci je přístupné makro __VERSION__ od kompilátoru
    printf(__VERSION__);
    
    16.10.2011 14:55 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace
    Ad. -dumpversion
    Tý jo, 300 let to používám a ani mě nenapadne, že by tam takového něco mělo být. :-(
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    16.10.2011 15:10 l4m4
    Rozbalit Rozbalit vše Re: awk jednoduchá string operace
    No vida.

    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.