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 12:22 | Pozvánky

Konference DevConf.CZ 2020, již dvanáctý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne v Brně na FIT VUT od 24. do 26. ledna 2020. Zveřejněn byl program konference a spuštěna byla povinná a bezplatná registrace.

Ladislav Hagara | Komentářů: 0
včera 22:55 | Zajímavý článek

Příspěvek Prozkoumejte Česko na Wikidatech: druhý díl zajímavých Wikidata Queries na blogu Wikimedie Česká republika je volným pokračováním příspěvku Prozkoumejte Česko na Wikidatech: 10 nejlepších Queries datového žurnalisty z července 2017. Tentokrát jsou díky Wikidatům a SPARQL zobrazeny Železniční tratě v Česku, Díly pořadu Gebrian VS na mapě nebo Citace vědeckých článků – srovnání českých univerzit, na níž publikující autoři působí.

Ladislav Hagara | Komentářů: 0
včera 19:44 | Komunita

Ovlivnit Ubuntu 20.04 LTS lze vyplněním dotazníku. Více v příspěvku na blogu Ubuntu.

Ladislav Hagara | Komentářů: 0
včera 12:33 | Zajímavý článek

Na stránkách české komunity Fedory vyšel zajímavý článek o tom, jak se generují flatpakové balíčky z již existujících balíčků RPM.

KOLEGA | Komentářů: 7
včera 12:22 | Zajímavý článek

Donald Ervin Knuth, přední informatik a emeritní profesor na Stanfordově univerzitě, rozšířil svou mnohasvazkovou odbornou monografii The Art of Computer Programming (TAOCP), v českém překladu Umění programování, o Volume 4, Fascicle 5. Donald Knuth svou novou knihu představil ve své přednášce Pi and The Art of Computer Programming.

Ladislav Hagara | Komentářů: 32
8.12. 11:44 | Zajímavý článek

Arsenij Zinčenko v zápisku sdílí technické poznámky o tom, co je to „klíčenka“ (keyring) v Linuxu a v desktopovém prostředí, jak to souvisí se Secret Service a D-Bus, včetně příkladů. Význam těchto služeb spočívá v uložení a následném poskytování autentizačních údajů.

Fluttershy, yay! | Komentářů: 0
7.12. 01:44 | Nová verze

V únoru 2014 bylo hlasováním rozhodnuto, že výchozím init systémem v Debianu je systemd. V listopadu stejného roku bylo hlasováním rozhodnuto, že o podpoře dalších init systémů v Debianu není celoprojektové hlasování nutné. Po pěti letech už ale hlasování o init systémech a systemd nutné je. Vybírá se z 8 možností. Výsledek hlasování bude zveřejněn po 27. prosinci.

Ladislav Hagara | Komentářů: 22
7.12. 00:11 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot, se rozhodl, že svůj komiks vydá také knižně a ve vlastní režii. Komiks již knižně vyšel ve francouzštině ve vydavatelství Glénat. David Revoy jej vydá v angličtině a použije pouze svobodný software. O své zkušenosti se dělí ve dvou příspěvcích na svém blogu. Z plánovaných dvou týdnů práce se staly dva měsíce. Vydání před Vánocemi se nestihne. Kontrolní výtisk má příliš jasné barvy, obrázky v knihách od Glénatu vypadají mnohem lépe, …

Ladislav Hagara | Komentářů: 1
6.12. 20:44 | IT novinky

Mezinárodní konsorcium W3C (World Wide Web Consortium) vydalo verzi 1.0 základní specifikace WebAssembly a po HTML, CSS a JavaScriptu prohlásilo WebAssembly za čtvrtý oficiální jazyk pro web.

Ladislav Hagara | Komentářů: 26
6.12. 13:33 | Komunita

Hlasování o obrázku v okně O Inkscapu 1.0 pokračuje druhým kolem. Ze 124 obrázků postoupilo do finálního hlasování 5 s nejvíce hlasy. Výsledek hlasování bude zveřejněn po jeho ukončení, tj. po 15. prosinci.

Ladislav Hagara | Komentářů: 8
Jaké hodinky nosíte (nejčastěji)?
 (23%)
 (5%)
 (17%)
 (54%)
Celkem 531 hlasů
 Komentářů: 135, poslední 6.12. 20:54
Rozcestník

www.AutoDoc.Cz

Dotaz: Jak vypsat string ze souboru

27.1. 21:32 dnes
Jak vypsat string ze souboru
Přečteno: 560×
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: 48 | 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. 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. 03:04 k3dAR | skóre: 57
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: 48 | 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
Řešení 1× (lertimir)
29.1. 02:26 Andrej | skóre: 47 | 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: 48 | 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. 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. 17:31 xkucf03 | skóre: 48 | 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. 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. 20:30 k3dAR | skóre: 57
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: 47 | 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: 48 | 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.