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 16:33 | Nová verze

Richard Hughes na svém blogu představil nejnovější verzi 1.5.0 nástroje fwupd umožňujícího aktualizovat firmware zařízení na počítačích s Linuxem. Přehled podporovaných zařízení, nejnovějších firmwarů a zapojených výrobců na stránkách LVFS (Linux Vendor Firmware Service).

Ladislav Hagara | Komentářů: 0
dnes 08:00 | Zajímavý článek

Ars Technica se ohlíží za československými protirežimními adaptacemi videoherních titulů z 80. let, především textových adventur Indiana Jones, ale také Rambo. Reimplementaci textovek si lze zahrát ve webovém prohlížeči s JavaScriptem, zdrojové kódy jsou na GitHubu.

Fluttershy, yay! | Komentářů: 0
dnes 07:00 | Zajímavý software

Sequoia PGP je implementace OpenPGP v programovacím jazyce Rust. Zdrojové kódy jsou k dispozici na GitLabu pod licenci GPLv2. Nedávno byla vydána verze 0.20.0.

Ladislav Hagara | Komentářů: 0
25.10. 00:33 | Nová verze

GNU Debugger aneb GDB byl vydán ve verzi 10.1. Nově lze ladit BPF programy. GDBserver podporuje ARC GNU/Linux a RISC-V GNU/Linux. Podporován je HTTP server debuginfod.

Ladislav Hagara | Komentářů: 0
23.10. 22:22 | Komunita

RIAA (Recording Industry Association of America) podala DMCA požadavek (DMCA takedown notice) na zastavení šíření zdrojových kódů youtube-dl na GitHubu. Pomocí youtube-dl lze z YouTube stáhnout autorská díla určená pouze pro YouTube.

Ladislav Hagara | Komentářů: 187
23.10. 17:00 | Komunita

V 18:00 proběhne živě představení Ubuntu pro Raspberry Pi na YouTube.

Ladislav Hagara | Komentářů: 1
23.10. 07:00 | Nová verze

Byla vydána nová verze 13.5 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 v příspěvku na blogu.

Ladislav Hagara | Komentářů: 0
22.10. 21:33 | Nová verze

Oficiálně bylo vydáno Ubuntu 20.10 s kódovým názvem Groovy Gorilla. Přehled novinek v poznámkách k vydání. Zdůrazněn je Ubuntu Desktop pro Raspberry Pi.

Ladislav Hagara | Komentářů: 5
22.10. 17:00 | IT novinky

Java edice počítačové hry Minecraft bude vyžadovat účet u Microsoftu (YouTube). Podrobnosti ve FAQ.

Ladislav Hagara | Komentářů: 26
22.10. 16:00 | Nová verze

Byla vydána nová vývojová verze datového formátu a souvisejících nástrojů Relational pipes. Hlavní novinkou verze v0.17 je výstupní modul pro JACK, kterým lze posílat MIDI zprávy do zvukových karet a syntezátorů, dále pak podpora práce s porty JACK systému, vylepšené CLI rozhraní několika nástrojů a přejmenování modulu relpipe-tr-guile na relpipe-tr-scheme.

xkucf03 | Komentářů: 0
Které aspekty uživatelského rozhraní textového editoru považujete za důležité?
 (71%)
 (36%)
 (33%)
 (17%)
 (24%)
 (16%)
Celkem 218 hlasů
 Komentářů: 21, poslední 23.10. 17:33
Rozcestník

Dotaz: regularni vyraz v awk

21.5.2005 00:46 Roland | skóre: 3
regularni vyraz v awk
Přečteno: 345×
Dobry den, nejak si nevim rady s regularnim vyrazem v awk. Z vypisu ls -Rl potrebuji zjistit ktery radek zacina znakem [ nebo . a podle toho se zachovat

ls -Rl `$pwd` | grep -v ^celkem | grep [^*] | awk '{if (($1 == "[^[]") || ($1 == "[^\.]") {print $1} else {print $9}}'

za rady dekuji

Odpovědi

21.5.2005 08:06 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: regularni vyraz v awk
To je zase nějaká domácí úloha na reimplementaci findu v awk? Pokud ne, použij find.

Jinak, kde začít...

Co to je proboha `$pwd` a proč tam je? Nemá to být $PWD, když tedy už vůbec ls potřebuje argument?

grep ... | grep ... | awk má v soutěži o nejzbytečnější grep slušnou naději na umístění na čelní posici.

grep -v ^celkem funguje leda s českým locale, jinak tam lze slovo celkem stěží očekávat.

[^*] se expanduje na co? Na seznam jednopísmenných souborů v adresáři, které se nejmenují *. Jinými slovy nepředvídatelně.

awk. Přečti si Getting started with awk v manuálu. Chceš totiž ve skutečnosti

/[^[]/ { ... }

neboli

PATTERN { ACTION }

takhle se awk běžně používá.

A Expressions. Operátor == je totiž porovnání řetězců, kdybys už chtěl matchovat regulární výrazy, tak se matchují operátorem ~.
21.5.2005 12:16 Roland | skóre: 3
Rozbalit Rozbalit vše Re: regularni vyraz v awk
"Jedna se o silenou soutez na CVUT FEL jmenem: Napis si svuj FIND aneb semestralni uloha z X36UNX..."

1. grep ^celkem, no muzu tam dat total nebo vzit v potaz x-dalsich mutaci unixu a linuxu - me staci kdyz to predvedu na jednom stroji, stejne je to nesmysl takto psat find...
2. [^*] odstrani prazdne radky
3. takze to bude vypadat nejak takto? awk '{if (($1 == "/[^[]/") || ($1 == "/[^\.]/") {print $1} else {print $9}}'
4. na Solarisu mi fungovalo awk '{if ($1 == "[^/*]"){print $9} if ($1 == "[^/]") {print $1}}'

jde mi jen o to rozlisit z vystupu ls -RL jestli se jedna o "cestu" nebo adresar a soubor
21.5.2005 12:16 Michal Kubeček
Rozbalit Rozbalit vše Re: regularni vyraz v awk
To je zase nějaká domácí úloha na reimplementaci findu v awk?

Řekl bych, že pořád ta samá… Nejlepší stejně asi bude z toho shellového skriptu spustit awk a z něj nenápadně zavolat find… :-)

Zajímalo by mne jen, zda cena takto naprogramovaného find (strávený čas krát nějaká rozumná hodinová sazba) přesáhne cenu, za kterou se prodávají RHEL, SLES nebo Solaris… :-)

21.5.2005 12:39 Roland | skóre: 3
Rozbalit Rozbalit vše Re: regularni vyraz v awk
Jsem rad ze vas tu alespon pobavim :)

Ale opravdu nevite jak na ten regularni vyraz? Potrebuji, aby se na vsechny radky co zacinaji '.' nejak zereagovalo...
21.5.2005 12:54 Michal Kubeček
Rozbalit Rozbalit vše Re: regularni vyraz v awk
Už jsem vám napsal několikrát, že metodu parsování výstupu 'ls -lR' považuji za naprosto nevhodnou a že daleko vhodnější by bylo řešit to rekurzivním procházením adresářového stromu. Ale komu není rady, tomu není pomoci…

Ale jinak v tom nevidím problém:

ls -lR | awk '/^\./ { print "hele, tečka!"; }'

21.5.2005 13:16 Roland | skóre: 3
Rozbalit Rozbalit vše Re: regularni vyraz v awk
Dekuji!
Asi jsem vase vyzvy ve zmeti zprav prehledl, zkusim si o rekurzivnim procházeni adresaroveho stromu neco vyhledat. Kdybyste mel nejaky zajimavy link, byl bych za nej rad...
21.5.2005 13:57 Michal Kubeček
Rozbalit Rozbalit vše Re: regularni vyraz v awk
Na to není potřeba nic hledat, lehký nástřel:

function recurse
{
  for f in *; do
    # tady s tím souborem něco udělám
    if [ -d "$f" ]; then
      cd "$f"
      recurse
      cd ..
    fi
  done
}

Samozřejmě to bude chtít trochu doladit (prázdné adresáře, skryté soubory, zacyklené linky, …).

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.