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 22:55 | Nová verze

    Byla vydána únorová aktualizace aneb nová verze 1.110 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.110 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 6
    včera 18:11 | IT novinky

    Apple představil 13palcový MacBook Neo s čipem A18 Pro. V základní konfiguraci za 16 990 Kč.

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

    Kalifornský zákon AB 1043 platný od 1. ledna 2027 vyžaduje, aby operační systémy požadovaly po uživatelích věk nebo datum narození a skrze API poskytovaly aplikacím informaci, zda je uživatel mladší 13 let, má 13 až 16 let, má 16 až 18 let nebo má alespoň 18 let. Vývojáři linuxových distribucí řeší, co s tím (Ubuntu, Fedora, …).

    Ladislav Hagara | Komentářů: 70
    včera 11:44 | Pozvánky

    Konference LinuxDays 2026 proběhne o víkendu 3. a 4. října v Praze v areálu ČVUT v Dejvicích na FIT. Čekají vás desítky přednášek, workshopy, stánky a setkání se spoustou chytrých lidí.

    Petr Krčmář | Komentářů: 0
    včera 00:44 | Humor

    Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 145. Aktuální verze Firefoxu je 148. Od září přejde Chrome na dvoutýdenní cyklus vydávání. V kterém týdnu bude mít Chrome větší číslo verze než Firefox? 😀

    Ladislav Hagara | Komentářů: 1
    3.3. 21:55 | IT novinky Ladislav Hagara | Komentářů: 4
    3.3. 13:44 | Komunita

    Bylo spuštěno hlasování o přednáškách a workshopech pro letošní Installfest, jenž proběhne o víkendu 28. a 29. března v Praze na Karlově náměstí 13.

    Ladislav Hagara | Komentářů: 4
    3.3. 04:33 | Nová verze

    Byla vydána (Mastodon, 𝕏) třetí RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.

    Ladislav Hagara | Komentářů: 0
    2.3. 21:44 | IT novinky

    Apple představil iPhone 17e a iPad Air s čipem M4.

    Ladislav Hagara | Komentářů: 18
    2.3. 21:11 | Zajímavý software

    Byla vydána verze 1.0 editoru kódů Gram. Jedná se o fork editoru Zed bez telemetrie a umělé inteligence.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (7%)
     (0%)
     (11%)
     (28%)
     (2%)
     (5%)
     (1%)
     (13%)
     (25%)
    Celkem 1015 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: Jak vypsat string ze souboru

    27.1.2019 21:32 dnes
    Jak vypsat string ze souboru
    Přečteno: 682×
    Ahoj.

    V souboru data mám čtyři řádky
    1-abcd
    20-efgh
    300-ijkl
    4000-mnop
    
    pomůže někdo jak vypsat string "ijkl" pomocí bashe? Znám jenom čísla před pomlčkou, string za pomlčkou neznám.

    Děkuji za pomoc.

    Řešení dotazu:


    Odpovědi

    27.1.2019 22:05 camel1cz | skóre: 25
    Rozbalit Rozbalit vše Re: Jak vypsat string ze souboru
    bashem nevím, ale jinak je možnosti plno... napr. sed, awk nebo grep+cut

    27.1.2019 22:23 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: Jak vypsat string ze souboru
    grep ^300- soubor.txt

    Jinak bash, to je v podstatě jakési lepidlo pro různé nástroje. V tomto případě by sis ještě vysledem měl oříznout.
    xkucf03 avatar 27.1.2019 23:45 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Jak vypsat string ze souboru
    Což jde třeba sedem nebo i tím grepem, když zapneme Perlovské regulární výrazy:
    $ cat data.txt 
    1-abcd
    20-efgh
    300-ijkl
    4000-mnop
    
    $ cat data.txt | grep -oP '(?<=300-).*'
    ijkl
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Bystroushaak avatar 28.1.2019 13:27 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Jak vypsat string ze souboru
    Taky to jde klasicky cutem:
    $ grep 300 data.txt | cut -d "-" -f 2
    ijkl
    
    k3dAR avatar 29.1.2019 03:04 k3dAR | skóre: 63
    Rozbalit Rozbalit vše Re: Jak vypsat string ze souboru
    btw: UUOC ;-) =>
    $ grep -oP '(?<=300-).*' data.txt
    ijkl
    porad nemam telo, ale uz mam hlavu... nobody
    xkucf03 avatar 29.1.2019 07:56 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše UUoC

    UUoC znám, ale příkazy/roury mi přijdou čitelnější, když v nich data tečou zleva doprava.

    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    29.1.2019 02:26 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Jak vypsat string ze souboru

    Místní klasika: Tazatel se ptá na bash, ale respondenti místo toho vymýšlejí grep, sed, awk a kdovíco všechno ještě a pak to nakonec vyeskaluje do extrémů typu perl. :-D Trochu jako v politice, že jo…

    key=300  # co má být před pomlčkou
    
    while read line; do
      if [[ "$line" = "$key"-* ]]; then
        echo "${line#*-}"
        break  # jen první shoda (?)
      fi
    done < /cesta/k/tomu/souboru
    
    xkucf03 avatar 29.1.2019 08:01 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Jak vypsat string ze souboru

    Na tohle jsem taky myslel, ale nechtělo se mi s tím psát :-) Nicméně je dobré, že sem toto řešení píšeš.

    Jinak ale PCRE neznamená, že by v tom nějak figuroval Perl – jsou to pouze regulární výrazy v syntaxi kompatibilní s těmi Perlovými.

    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Bystroushaak avatar 29.1.2019 09:32 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Jak vypsat string ze souboru
    Nevolá = program test?
    xkucf03 avatar 29.1.2019 17:31 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Jak vypsat string ze souboru
    $ type test
    test je součást shellu
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Bystroushaak avatar 29.1.2019 20:13 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Jak vypsat string ze souboru
    $ whereis test
    test: /usr/bin/test /usr/share/man/man1/test.1.gz
    $ file /usr/bin/test
    /usr/bin/test: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=3de4ee302f56bd8e08a64b0d827e165750b3b65f, stripped
    
    Ale asi jn.
    k3dAR avatar 29.1.2019 20:30 k3dAR | skóre: 63
    Rozbalit Rozbalit vše Re: Jak vypsat string ze souboru
    whereis hleda externi, bash pouzije svuj interni, stejne jako napr. sve echo, dokud nezadas ty cestu k tomu externimu...
    porad nemam telo, ale uz mam hlavu... nobody
    29.1.2019 20:42 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Jak vypsat string ze souboru

    Většinou ne.

    Jedna hranatá závorka je v podstatě ekvivalent příkazu test. Existuje většinou /bin/[ Jako symlink na /bin/test. To je pro shelly starší / jednodušší než bash.

    Bash má [ i test jako vestavěné příkazy, takže ani jednou hranatou závorkou se v bashi externí proces nespouští. (Jde to nějak podrobněji nastavit, ale nechce se mi to hledat.)

    Dvě hranaté závorky jsou vestavěná záležitost v bashi — nemají už nic společného s příkazem test a umí toho mnohem víc než test. Mají rozšířenou syntaxi, dovedou matchovat vůči „extglobům“ atd. atp.

    xkucf03 avatar 29.1.2019 21:11 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše Vestavěné příkazy shellu

    Jde to takhle:

    $ type [
    [ je součást shellu
    
    $ enable -n [
    
    $ type [
    [ je /usr/bin/[

    nevím, jestli existuje ještě jiný způsob (tedy kromě překompilování Bashe bez podpory určitých příkazů).

    Nebo by šel naopak implementovat jako vestavěný příkaz i ten cat (myslím, že je v příkladech ve zdrojácích Bashe). Pak by to byl prostě jen jiný zápis pro < a nespouštěl by se externí příkaz. BTW: ty vestavěné příkazy se dají načíst i dodatečně z knihovny – není potřeba překompilovávat celý Bash. Takže si člověk může dopisovat vlastní příkazy…

    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes

    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.