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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 17:22 | Nová verze

Byl vydán PostgreSQL 9.6. Nejnovější verze tohoto relačního databázového systému s otevřeným zdrojovým kódem přináší celou řadu nových vlastností a vylepšení. Zmínit lze například podporu paralelních dotazů nebo fulltextové vyhledávání frází. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
dnes 16:44 | Nová verze

Na blogu linuxové distribuce Linux Mint byl představen miniaturní počítač Mintbox Mini Pro s předinstalovaným Linux Mintem 18. Jedná se o nástupce miniaturního počítače MintBox Mini (zprávička) představeného v lednu loňského roku. Mintbox Mini Pro je o 100 dolarů dražší, vyjde na 395 dolarů.

Ladislav Hagara | Komentářů: 4
dnes 13:33 | Komunita

Clement "Clem" Lefebvre v příspěvku Addressing FUD na blogu vývojářů Linux Mintu Segfault obviňuje vývojáře, správce a komunity kolem konkurenčních linuxových distribucí, že úmyslně šíří strach, nejistoty a pochyby ohledně Linux Mintu s cílem podpořit své vlastní linuxové distribuce.

Ladislav Hagara | Komentářů: 6
dnes 13:30 | Nová verze

Vyšla nová verze "asociálního" prohlížeče a analyzátoru GPX souborů GPXSee. Verze 2.19 přináší především časové grafy a zvýrazňování tras/grafů. Zdrojové kódy jsou ke stažení na GitHubu, balíčky na OBS, Windows a OS X buildy na SourceForge.

Martin Tůma | Komentářů: 1
dnes 02:20 | Komunita

Mozilla.cz informuje, že program Firefox Test Pilot (zprávička) byl rozšířen o 3 nové experimentální funkce. Jedná se o Page Shot, Min Vid a Tracking Protection. Page Shot je nástroj pro vytváření snímků obrazovky s možností výběru konkrétní oblasti na stránce. Min Vid umožňuje sledování videí ze serverů YouTube nebo Vimeo v malém okně současné s prohlížením jiných webových stránek. Tracking Protection umožňuje zapnout ochrana proti sledování také v běžných oknech.

Ladislav Hagara | Komentářů: 3
včera 20:02 | Komunita

Nadace Raspberry Pi na svém blogu představuje PIXEL (Pi Improved Xwindows Environment, Lightweight), nové výchozí desktopové prostředí pro Raspberry Pi. Prostředí PIXEL je obsaženo již v aktuální verzi 2016-09-23 Raspbianu. Ten nově přichází například také s webovým prohlížečem Chromium, možností vzdáleného grafického přístupu k desktopu pomocí RealVNC nebo emulátorem rozšiřující desky Sense HAT.

Ladislav Hagara | Komentářů: 8
včera 12:34 | Nová verze

Po téměř deseti letech vývoje a testování byl LuaTeX (Wikipedie), program pro počítačovou sazbu TeX rozšířený o skriptovací jazyk Lua, prohlášen za dostatečně stabilní na to, aby mohla být vydána verze 1.0.0. Stalo se tak na 10. ConTeXt Meetingu.

Ladislav Hagara | Komentářů: 4
včera 12:00 | Komunita

Byly zveřejněny videozáznamy přednášek z konference vývojářů "softwaru, který štve méně" suckless conference 2016 konané minulý týden v Hofheimu. Mezi projekty suckless.org patří například dynamický dlaždicový správce oken dwm, emulátor terminálu st, webový prohlížeč surf, dynamické menu dmenu nebo linuxová distribuce sta.li (static linux).

Ladislav Hagara | Komentářů: 3
27.9. 18:12 | Zajímavý článek

Mozilla v diskusní skupině mozilla.dev.security.policy řeší co s certifikačními autoritami WoSign a StartCom. Výsledkem je (zatím) třináctistránkový dokument WoSign and StartCom na Dokumenty Google. V červenci se například provalilo, že služba StartEncrypt od certifikační autority StartCom umožňovala komukoliv automaticky vydat certifikát k prakticky libovolné doméně (zprávička). V srpnu se uživateli GitHubu povedlo získat

… více »
Ladislav Hagara | Komentářů: 7
27.9. 15:00 | Komunita

V arizonském Glendale dnes začíná třídenní konference AstriCon 2016 věnovaná Asterisku. Při té příležitosti byla vydána verze 14.0.0 této svobodné softwarové implementace telefonní ústředny (PBX). Přehled novinek na wiki stránkách.

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (29%)
 (29%)
 (30%)
 (7%)
 (5%)
 (1%)
Celkem 194 hlasů
 Komentářů: 3, poslední 27.9. 09:40
    Rozcestník
    Reklama

    Dotaz: sed a promenne

    13.5.2003 21:20 qwerty | skóre: 9
    sed a promenne
    Přečteno: 1133×
    Cau pisu skript v bashi a chtel bych v nem pouzit i sed. Je umisteny v ridicim cyklu for a potreboval bych aby v zadani regularniho vyrazu pro sed byla promenna cyklu....jenomze kdyz dam "sed '...$i...'" tak on to za promennou nepovazuje ale povazuje to za regyularni vyraz konce radku...a \ taky nepomuze. jde to nejak udelat ? diky

    Odpovědi

    14.5.2003 00:02 Milan Gerža | skóre: 30
    Rozbalit Rozbalit vše sed a promene
    hodne o sedu je tady, a pokud se nepletu, melo by pomoct pouzit misto jednoduchych uvozovek dvojite.
    14.5.2003 09:27 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše sed a promene
    zkus man bash a tam hledej QUOTING, kde je napsané, co se přesně děje uvnitř " a '. v tomhto případě je třeba změnit ' na ". pokud má proměnná nějakou slušnou hodnotu, a hodí se mi ohraničení apostrofy, píšu to s klidem často také '...'$i'...'
    14.5.2003 10:21 qwerty | skóre: 9
    Rozbalit Rozbalit vše sed a promene
    Diky uz to jede
    9.9.2004 15:05 JaSel | skóre: 17 | blog: kseles
    Rozbalit Rozbalit vše Re: sed a promene
    Zdravim po nejakem case. Mi se to teda nejakou zahadou nedari. Co je spatneho na skriptu: #!/bin/bash
    for file in `find . -name "*.fft"`; do
    mv foft.m foft.m.bak;
    sed -e "s/soubor/$file/g" foft.m.bak > foft.m;
    octave foft.m;
    mv foft.m.bak foft.m;
    done

    V puvodnim souboru foft.m mam skript pro octave, ktery jako vstup pouziva soubory *.fft. Potrebuju nahradit retezec 'soubor' ve skriptu foft.m. Pokud si tenhle shellovy skript spustim, dostanu chybovou hlasku: sed: -e expression #1, char 12: Unknown option to 's' Poku nahradim v prikazu pro sed uvozovky apostrofama, tak se mi do foft.m napise $file jako text. Nevite nekdo, jak na to? Diky, JS.
    9.9.2004 15:20 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: sed a promene
    Problém jsou lomítka ve jménech souborů, která předčasně ukončí s///. Buď použij jako oddělovač s/// nějaký znak, o němž si myslíš, že ho ve jménech souborů mít nikdy nebudeš (třeba středník), nebo to musíš oescapovat...

    Jinak by se ty přesuny souborů asi kapku zjednodušily, kdybys měl jeden soubor foft.m.template, z něj vždy udělal foft.m a použil ho, a přitom foft.m.template nechával na pokoji...
    9.9.2004 16:01 JaSel | skóre: 17 | blog: kseles
    Rozbalit Rozbalit vše Re: sed a promene
    Ty lomitka jsou tam z prikazu find, to uz jsem pochopil. Ale, ze staci misto lomitek napsat strednik, by me asi nenapadlo.

    To s tim foft.m je OK, dik.
    9.9.2004 17:07 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: sed a promene
    Brutus řešení je
    sed -e "s/soubor/${file//\//\\\/}/g" foft.m.bak > foft.m;
    To je moje oblíbené ;-)
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    10.9.2004 10:58 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: sed a promene
    No aby to bylo úplně trotl fest tak by to chtělo asi ještě
    file="${file/\\/\\\\}"
    sed -e "s/soubor/${file/\//\\\/}/g" foft.m.bak > foft.m;
    
    Pokud ale octave používá \ jako escape znak, tak by to muselo být
    file="${file/\\/\\\\\\\\}"
    sed -e "s/soubor/${file/\//\\\/}/g" foft.m.bak > foft.m;
    
    Pokud požívá jiný escape znak, tak se pochopitelně musí ještě oecapovat příslušný znak, že :-)
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    10.9.2004 10:59 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: sed a promene
    Ikdyž, kdo by používal \ ve jménu souboru, kromě mě, že.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    10.9.2004 15:34 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: sed a promene
    A pokud používáš se jménech souborů &, tak se to taky rozes... ;-)
    10.9.2004 19:34 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: sed a promene
    Proto tam mám ty uvozovky, aneb touch ahoj\ vole\ \&\ rm\ -rf ale stejně se mi to nějak nedaří rozes...
    $ ls ahoj*
    ahoj vole & echo kuku
    $ for i in ahoj*; do echo $i;done
    ahoj vole & echo kuku
    $
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    10.9.2004 19:41 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: sed a promene
    Ta finta je na straně sedu -- & nahradí celým matchnutým stringem ;-)
    10.9.2004 21:09 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: sed a promene
    Aha. To je nepříjemné, ale taky se dá, že :-)
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    14.5.2003 21:25 qwerty | skóre: 9
    Rozbalit Rozbalit vše sed a promene
    Mam jeste jeden problem a ani z manu nejsem chytrejsi jak to resit ci jestli to vubec jde. Nebudu to sahodlouze popisovat ale uvedu priklad: ....... | sed -n "s/^\(.*\)\ /"`sed -n /\1/p ~/xxx/yyy`"/p" pricemz by to melo delat ze dany vyraz v prvnim sedu se nahradi vyrazem ktery se vyhodnoti druhym sedem ale na zaklade ulozene hodnoty \( \) z prvniho sedu. To znamena napriklad prvni sed dostane na vstup radek: "root /domov/roota" no a v tomto vyrazu by se melo jmeno uzivatele (v tomto pripade root) substituovat za radek ktery ten druhy sed najde k danemu uzivateli v souboru /etc/passwd. Problem mam v tom ze v tom druhem sedu se \1 asi nepovazuje jako adresa toho ulozeneho z toho prvniho.
    15.5.2003 01:20 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše sed a promene
    četl jsem to asi třikrát, a možná stále nepochopil. ale stručná odpověď asi bude, že ty příkazy pouští shell, sed žádné příkazy nepouští. během práce sedu jsou ty řetězce konstanty, které prostě na začátku dostal. to, co píšeš, dělá následující: nejdřív se pustí ,,druhý`` sed. najde v ~/xxx/yyy řádky obsahující jedničku (backslash se požere) a ty vypíše (btw, to se dělá grepem ;) tento výstup shell dosadí do toho příkazu namísto `...` a pustí se ten ,,první`` sed, který samozřejmě pak provede nějakou pitomost. doporučuji man (resp. info) join, předpokládám, že potřebuješ tohle.
    15.5.2003 01:34 qwerty | skóre: 9
    Rozbalit Rozbalit vše sed a promene
    Tak sem asi prece jenom dostal odpoved na svoji otazku. Jestli to chapu dobre tak jestli je to tak ze se prvni vyhodnoti prikaz(druhy sed) co je v `..` nezavisle na tom v cem(v zapisu prvniho sedu) je obsazeny, pak je hloupost dosazovat do druheho sedu adresu nejakeho vyrazu \( \) ktery se vyhodnoti v prvnim sedu protoze ten se vyhodnocuje az jako druhy je to tak ?
    15.5.2003 08:45 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše sed a promene
    Asi bych doporucil precist si dokumentaci sedu. sed je totiz kompletni programovaci jazyk a to co potrebujete samozrejme umi, ale dela se to uplne jinak.

    Drobna napoveda:
    /vzorek/{
        prikaz;
        prikaz;
    }
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    15.5.2003 08:49 rat
    Rozbalit Rozbalit vše sed a promene
    ty dva procesy bezi nezavisle, takze "dosazovat" mezi nimi pres \1 a jine sedove konstrukce rozhodne nejde, mimo to uz tu nekdo psal jak se to vyhodnocuje. jestli jsem spravne pochopil o co se jedna, doporucuju napsat si na to skript. nesnaz se dostat vsechno na jeden radek, v tomto pripade to navic ani nejde.
    15.5.2003 09:31 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše sed a promene
    podle mne to snad jde napsat na jeden řádek (pokud jsem pochopil, co to má dělat), ale s pomocí joinu
    15.5.2003 17:10 qwerty | skóre: 9
    Rozbalit Rozbalit vše sed a promene
    mozna sem natvrdly ale fakt me nenapada jak to vyresit ani pomoci joinu. Znovu sem prolezl FAQ ale odpoved sem nenasel. Nevim jestli ste pochopili v cem mam problem zkusim to popsat znovu: sed dostane na vstup radky tohodle tvaru: "uzivatel neco" no a ted na zaklade jmena uzivatele by mel substituovat slovo "uzivatel" za prislusny radek ktery si najde v /etc/passwd. Problem je v tom ze to je jaksi "promenliva substituce" ze ta definice toho co se bude substituovsat neni pevne dana necim co sem si ulozil pres \( \) nebo primo nejakym retezcem ale teprve se vyhodnoti na zaklade toho co se bude substituovat. Resenim by bylo kdybych pri zpracovani kazdeho radku byl nejak schopny zapamatovat si slovo "uzivatel" a s tim pak dale v ramci {slozenych;prikazu;} dale pracovat ale fakt nevim. Nebyli byste nekdo te dobroty a neukazali mi jak byste takovyto problem resili ?
    15.5.2003 20:31 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše sed a promene
    mh. info join. nicméně pokud (a) soubory používají stejný delimiter (např. mezeru, dvojtečku) (b) jsou stejně setříděné, jde to napsat snadno jako one-liner když mám v souboru soubor tohle (je to setříděné podle první položky):
    luser:je máčka a odpad
    pepa:ten tu nemá účet, takže se nevypíše
    root:je největší king
    yeti:je taky king
    
    tak mi stačí
    sort /etc/passwd | join -o 1.6,2.2 -t: - soubor
    
    aby mi to vypsalo (položka 6 v /etc/passwd je home)
    /home/luser:je máčka a odpad
    /root:je největší king
    /home/yeti:je taky king
    
    složitejší možnosti mohou vyžadovat něco setřídit nebo v tom změnit delimitery předem (případně on-the-fly zároveň se sortem), takže už to třeba nebude one-liner, ale princip je stále stejný. jasný?
    15.5.2003 23:23 Jirka Benc
    Rozbalit Rozbalit vše sed a promene
    Kdyz v bashi, tak co takhle uplne bez sedu? Jestli jsem to pochopil dobre, tohle by mohlo byt to, co potrebujes:
    #!/bin/bash
    while read line; do
      user=${line%% *}
      echo ${line/$user/`grep ^$user: /etc/passwd`}
    done < $1
    
    16.5.2003 11:14 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše sed a promene
    opět: info join. jistě že bez sedu, sed je v tomto případě k ničemu. leda tak ke změně delimiteru, pokud ty dva soubory používají různý (jako že ano, /etc/passwd používá dvojtečku a ten příklad mezeru). přestaňte už konečně vynalézat kolo a přečtete si dokumentaci k gnu textutils. ty programy umí všechno, umí to dobře a rychle, jen musíte vědět, že existují.
    16.5.2003 13:57 qwerty | skóre: 9
    Rozbalit Rozbalit vše sed a promene
    mno ale prijde mi zbytecny ucit se miliony prikazu + jejich parametry. Chtel sem neco co zvladne vic veci na raz neco co pracuje trosku obecneji no a myslel sem ze sed mi zastoupi vetsinu utilit pro zpracovani textu ale asi to tak nebude. A co awk ? je awk dobre nahraditelny temito programy a naopak ?
    16.5.2003 15:29 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše sed a promene
    \begin{ironic}
    No jasne, ze awk by to zvladlo, kdyz uz jsme u toho samozrejme by se to dalo napsat i v perlu, pythonu, nebo si to nakodi v C. Kdyz tak nad tim premyslim, tak by snad i slo v vmWare nabootuj wokna a nakod to ve VisualBasicu.
    \end{ironic}
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    16.5.2003 15:52 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše sed a promene
    Nemusíš se učit desítky programů a jejich parametry, často je také pouštím s --help, ale vím, že existují, k čemu jsou vhodné (a k čemu ne), a jestli se ten option, který potřebuji, jmenuje -t nebo -d, to zjistím okamžitě. Podstatné je, že nemusím pořád něco programovat -- resp. to stejně dělám, ale nemusím programovat takhle primitivní věci, které lze řešit algebraicky ;) Můžeš to klidně napsat v kterémkoli topinkovači, který znáš, v assembleru, Fortranu, C, Pascalu, C++, Javě, awk, tcl, vimu, Perlu, Pythonu, ruby, ... nebo i Visual Basicu. Nejde o to, v čem to lze napsat, ale o to, který nástroj je vhodný. Vzít nějaký složitý nástroj a pracně v něm emulovat nějaký jednoduchý je úchylné. Zatloukáš snad hřebíky vrtačkou? Před pár dny tu někdo emuloval v shellu find, teď join (pomocí sedu, který je sám o sobě o dost složitější), a co zítra, uvidím tu fmt napsaný v shellu? no už se těším... ;)
    16.5.2003 16:15 qwerty | skóre: 9
    Rozbalit Rozbalit vše sed a promene
    hezky receno :) diky za odpovedi
    11.6.2004 12:21 tojefuk
    Rozbalit Rozbalit vše Re: sed a promene
    Vážení pánové, tato diskuze na kterou jsem narazil je sice rok stará, ale musím reagovat. Věřím že všichni máte xxx hodin strávených čtením manu, ale jak se proboha má ve vašich odpovědích a radách orientovat začátečník, který si chce napsat skript pracující s textem v souboru, popř. s argumentem zadaným v shellu, když netuší že to a to musí udělá nejlépe v shellu, to a to zase pomocí sedu, to v perlu, apod. Kde má ten začátečník tyto informace vzít? Třeba se podívá na man sed, ale nechápe třeba pojem pattern space, atd. tak kde najde informace o tom, nejlépe v češtině, jak či pomocí čeho řešit takový a makový problém?
    11.6.2004 12:44 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: sed a promene
    Já jsem si jako začátečník přečetl knihu Linux in Nutshell (česky Linux v kostce, novější vydání asi bohužel nikdo nepřeložil), jsou tam základy od kdečeho. Určitě i dnes existuje něco podobného. I když zrovna se sedem jsem uměl už z MS DOSu, kde jsem ho hojně používal -- a jak funguje, to jsem si tehdy nechal vysvětlit od zkušenějšího kamaráda ;)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   Powered by Hosting 90 Server hosting
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.