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

Phoronix spustil 2017 Linux Laptop Survey. Tento dotazník s otázkami zaměřenými na parametry ideálního notebooku s Linuxem lze vyplnit do 6. července.

Ladislav Hagara | Komentářů: 2
23.6. 22:44 | Nová verze

Po třech měsících vývoje od vydání verze 5.5.0 byla vydána verze 5.6.0 správce digitálních fotografií digiKam (digiKam Software Collection). Do digiKamu se mimo jiné vrátila HTML galerie a nástroj pro vytváření videa z fotografií. V Bugzille bylo uzavřeno více než 81 záznamů.

Ladislav Hagara | Komentářů: 1
23.6. 17:44 | Nová verze

Byla vydána verze 9.3 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab. Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 3
23.6. 13:53 | Nová verze

Simon Long představil na blogu Raspberry Pi novou verzi 2017-06-21 linuxové distribuce Raspbian určené především pro jednodeskové miniaturní počítače Raspberry Pi. Společně s Raspbianem byl aktualizován také instalační nástroj NOOBS (New Out Of the Box Software). Z novinek lze zdůraznit IDE Thonny pro vývoj v programovacím jazyce Python a především offline verzi Scratche 2.0. Ten bylo dosud možné používat pouze online. Offline bylo možné používat pouze Scratch ve verzi 1.4. Z nového Scratchu lze ovládat také GPIO piny. Scratch 2.0 vyžaduje Flash.

Ladislav Hagara | Komentářů: 1
22.6. 14:24 | Nová verze

Opera 46, verze 46.0.2597.26, byla prohlášena za stabilní. Nejnovější verze tohoto webového prohlížeče je postavena na Chromiu 59. Z novinek lze zmínit například podporu APNG (Animated Portable Network Graphics). Přehled novinek pro vývojáře na blogu Dev.Opera. Oznámení o vydání zmiňuje také první televizní reklamu.

Ladislav Hagara | Komentářů: 0
22.6. 13:37 | IT novinky

I čtenáři AbcLinuxu před dvěma lety vyplňovali dotazníky věnované Retro ThinkPadu. Nyní bylo potvrzeno, že iniciativa Retro ThinkPad je stále naživu a Lenovo připravuje speciální edici ThinkPadu jako součást oslav jeho 25. výročí.

Ladislav Hagara | Komentářů: 25
22.6. 10:22 | Komunita

Bylo oznámeno, že frontend a runtime programovacího jazyka D bude začleněn do kolekce kompilátorů GCC (GNU Compiler Collection). Správcem byl ustanoven Iain Buclaw.

Ladislav Hagara | Komentářů: 7
21.6. 18:47 | IT novinky
Bulharská firma Olimex je známá jako výrobce kvalitních mini arm desek, u nichž se snaží být maximálně open source. Kromě velké otevřenosti taktéž zaručují dlouhodobou podporu výroby, což je vítáno ve firemním prostředí. Nyní firma ohlásila ESP32-GATEWAY, malou IoT desku s Wifi, Bluetooth, Ethernetem a 20 GPIO porty za 22EUR. Tato malá deska je ořezanou verzí ESP32-EVB.
Max | Komentářů: 21
21.6. 18:00 | Zajímavý článek

LinuxGizmos (v dubnu loňského roku přejmenován na HackerBoards a v lednu letošního roku zpět na LinuxGizmos) zveřejnil výsledky čtenářské ankety o nejoblíbenější jednodeskový počítač (SBC) v roce 2017. Letos se vybíralo z 98 jednodeskových počítačů (Tabulky Google). Nejoblíbenějšími jednodeskovými počítači v letošním roce jsou Raspberry Pi 3 Model B, Raspberry Pi Zero W a Raspberry Pi 2 Model B.

Ladislav Hagara | Komentářů: 0
21.6. 14:22 | Pozvánky

Ne-konference jOpenSpace 2017 se koná od 13. do 15. října 2017 v hotelu Farma u Pelhřimova. Registrace účastníků je nutná. Více informací na stránkách ne-konference.

Zdenek H. | Komentářů: 0
Chystáte se pořídit CPU AMD Ryzen?
 (6%)
 (31%)
 (1%)
 (9%)
 (44%)
 (9%)
Celkem 837 hlasů
 Komentářů: 65, poslední 1.6. 19:16
    Rozcestník

    Dotaz: awk jednoduchá string operace

    16.10.2011 10:35 jarekkkk
    awk jednoduchá string operace
    Přečteno: 248×
    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: 47
    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: 47
    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: 47
    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: 47
    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: 47
    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.