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

Po 3 měsících vývoje od vydání verze 14 byla vydána nová stabilní verze 15 open source systému Nextcloud, forku ownCloudu, umožňujícího provoz vlastního cloudového úložiště. Přehled novinek i s náhledy v příspěvku na blogu. Pro vyzkoušení Nextcloudu je k dispozici demo.

Ladislav Hagara | Komentářů: 0
včera 18:00 | IT novinky

Počítačová hra Doom slaví 25 let. Společností id Software ji vydala 10. prosince 1993. Zahrát si ji lze například na Internet Archive.

Ladislav Hagara | Komentářů: 9
9.12. 23:55 | Zajímavý článek

Nakladatelství Raspberry Pi vydalo 244 stránkového průvodce pro úplné začátečníky s jednodeskovým počítačem Raspberry Pi The Official Raspberry Pi Beginner’s Guide (pdf). Programování ve visuálním programovacím jazyce Scratch je věnována nová příručka Code Club Book of Scratch Volume 1 (pdf). Vydáno bylo také třetí číslo časopisu věnovaného počítačovým hrám Wireframe (pdf).

Ladislav Hagara | Komentářů: 0
9.12. 23:44 | Nová verze

U příležitosti oslav jednoho roku prací na debianím balíčku, vyšlo GPXSee 7.0. Nová verze přináší zejména podporu vektorových map (Mapbox PBF) pomocí nově vzniklého Qt pluginu.

Martin Tůma | Komentářů: 8
7.12. 23:33 | Nová verze

UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch (seznam podporovaných zařízení), oznámila vydání nové verze Ubuntu Touch OTA-6. Zdůrazněna jsou například vylepšení webového prohlížeče Morph.

Ladislav Hagara | Komentářů: 0
7.12. 21:33 | Komunita

Richard Hughes na svém blogu informuje, že se společnost AMI (American Megatrends Incorporated), největší dodavatel firmwarů a BIOSů (AMIBIOS, Aptio, ...), zapojila do projektu LVFS (Linux Vendor Firmware Service). Seznam projektem podporovaných zařízení by se měl tedy časem rozšířit.

Ladislav Hagara | Komentářů: 0
7.12. 20:11 | Komunita

Nadace pro svobodný software (FSF) informuje, že seznam doporučených svobodných distribucí GNU/Linuxu byl rozšířen o distribuci Hyperbola GNU/Linux-libre. Hyperbola vychází z Arch Linuxu a na rozdíl od něj splňuje požadovaná kritéria.

Ladislav Hagara | Komentářů: 6
7.12. 19:55 | IT novinky

Společnost Valve oznámila, že počítačová hra Counter-Strike: Global Offensive (Steam) je nově free to play. Hra Company of Heroes 2 (Steam) je do pondělí 10. prosince zdarma.

Ladislav Hagara | Komentářů: 0
7.12. 00:11 | Nová verze

Byla vydána verze 7.3.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.3. Podrobný přehled novinek v seznamu změn.

Ladislav Hagara | Komentářů: 3
6.12. 23:55 | Nová verze

Byla vydána verze 1.31 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

Ladislav Hagara | Komentářů: 0
Chystáte se přejít na Wayland na „desktopu“?
 (25%)
 (7%)
 (11%)
 (31%)
 (25%)
Celkem 102 hlasů
 Komentářů: 14, poslední včera 12:19
Rozcestník

Dotaz: regularni vyraz v awk

21.5.2005 00:46 Roland | skóre: 3
regularni vyraz v awk
Přečteno: 341×
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.