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 14:22 | Zajímavý projekt

GitHub v příspěvku na svém blogu představil GitHub Sponsors. Jedná se o další z možností, jak finančně podpořit vývojáře open source softwaru. Podrobnosti v často kladených dotazech (FAQ).

Ladislav Hagara | Komentářů: 8
dnes 13:44 | Zajímavý software

Společnost Feral Interactive zabývající se vydáváním počítačových her pro operační systémy macOS a Linux vydala počítačovou hru Total War: Three Kingdoms (Wikipedie) pro Linux. Koupit ji lze za 59,99 €. Tentokrát byla verze pro Linux vydána ve stejný den jako verze pro Microsoft Windows.

Ladislav Hagara | Komentářů: 0
dnes 10:00 | Nová verze

Po téměř 11 měsících vývoje od vydání verze 5.28 byla vydána nová stabilní verze 5.30 programovacího jazyka Perl. Do vývoje se zapojilo 58 vývojářů. Změněno bylo přibližně 620 tisíc řádků v 1 300 souborech. Přehled novinek a změn v podrobném seznamu.

Ladislav Hagara | Komentářů: 1
včera 16:44 | Nová verze

Bylo vydáno openSUSE Leap 15.1. Přehled novinek v nejnovější verzi této linuxové distribuce v oznámení o vydání a v poznámkách k vydání.

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

Byla vydána verze 3.14 ž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 aktualizován na verzi 8.5. Řešeno je také několik bezpečnostních chyb. Především bezpečnostní chyby v procesorech Intel.

Ladislav Hagara | Komentářů: 1
včera 11:33 | Nová verze

Byla vydána nová verze 2019.2 průběžně aktualizované linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek v seznamu změn. Současně byl ve verzi 2019.2 vydán také Kali Linux NetHunter (Wikipedie), tj. obrazy s nástroji z Kali Linuxu pro chytré telefony a tablety.

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

Vyšel webový prohlížeč Tor Browser, založený na Firefoxu (60.7) a zaměřený na ochranu soukromí, ve verzi 8.5. Mění vzhled, zlepšuje přístupnost a nově je prohlášen za stabilní na Androidu.

Fluttershy, yay! | Komentářů: 0
21.5. 16:11 | Nová verze

Byl vydán Mozilla Firefox 67.0. Přehled novinek v poznámkách k vydání a na stránce věnované vývojářům. Zdůraznit lze blokování těžby kryptoměn a otisku prohlížeče, viditelnější účet Firefoxu nebo rychlý přístup ke správci hesel.

Ladislav Hagara | Komentářů: 7
21.5. 03:33 | Komunita

Rozšířená podpora operačního systémy Microsoft Windows 7 skončí 14. ledna 2020. Poté je možné využít placené podpory, přejít na Windows 10 nebo prostě na Linux. Vláda Jižní Koreje zkouší Linux. Přechod na Linux včetně nákupu nových počítačů by ji měl vyjít na 655 milionů dolarů.

Ladislav Hagara | Komentářů: 33
21.5. 02:22 | IT novinky

CZ.NIC ODVR (Otevřené DNSSEC Validující Resolvery) nově podporují vedle DNS-over-TLS (DoT) také DNS-over-HTTPS (DoH). DoH lze vyzkoušet ve Firefoxu od verze 62, Chrome od verze 66 nebo Bromite od verze 67.

Ladislav Hagara | Komentářů: 0
GPU kterého výrobce aktuálně preferujete pro provoz Linuxu?
 (49%)
 (25%)
 (24%)
 (2%)
Celkem 336 hlasů
 Komentářů: 28, poslední 21.5. 04:02
Rozcestník

Dotaz: Jak vypsat string ze souboru

27.1. 21:32 dnes
Jak vypsat string ze souboru
Přečteno: 531×
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. 22:05 camel1cz | skóre: 24
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. 22:23 Aleš Kapica | skóre: 49 | 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. 23:45 xkucf03 | skóre: 47 | 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, Relational pipes (AWK)
Bystroushaak avatar 28.1. 13:27 Bystroushaak | skóre: 35 | 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. 03:04 k3dAR | skóre: 54
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. 07:56 xkucf03 | skóre: 47 | 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, Relational pipes (AWK)
Řešení 1× (lertimir)
29.1. 02:26 Andrej | skóre: 46 | blog: Republic of Mordor | Zürich
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. 08:01 xkucf03 | skóre: 47 | 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, Relational pipes (AWK)
Bystroushaak avatar 29.1. 09:32 Bystroushaak | skóre: 35 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: Jak vypsat string ze souboru
Nevolá = program test?
xkucf03 avatar 29.1. 17:31 xkucf03 | skóre: 47 | 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, Relational pipes (AWK)
Bystroushaak avatar 29.1. 20:13 Bystroushaak | skóre: 35 | 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. 20:30 k3dAR | skóre: 54
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. 20:42 Andrej | skóre: 46 | blog: Republic of Mordor | Zürich
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. 21:11 xkucf03 | skóre: 47 | 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, Relational pipes (AWK)

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.