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 15:22 | IT novinky

    Eric Lengyel dobrovolně uvolnil jako volné dílo svůj patentovaný algoritmus Slug. Algoritmus vykresluje text a vektorovou grafiku na GPU přímo z dat Bézierových křivek, aniž by využíval texturové mapy obsahující jakékoli předem vypočítané nebo uložené obrázky a počítá přesné pokrytí pro ostré a škálovatelné zobrazení písma, referenční ukázka implementace v HLSL shaderech je na GitHubu. Slug je volným dílem od 17. března letošního

    … více »
    NUKE GAZA! 🎆 | Komentářů: 0
    včera 15:11 | Zajímavý projekt

    Sashiko (GitHub) je open source automatizovaný systém pro revizi kódu linuxového jádra. Monitoruje veřejné mailing listy a hodnotí navrhované změny pomocí umělé inteligence. Výpočetní zdroje a LLM tokeny poskytuje Google.

    Ladislav Hagara | Komentářů: 6
    včera 04:44 | Zajímavý software

    Cambalache, tj. RAD (rapid application development) nástroj pro GTK 4 a GTK 3, dospěl po pěti letech vývoje do verze 1.0. Instalovat jej lze i z Flathubu.

    Ladislav Hagara | Komentářů: 0
    20.3. 14:55 | Nová verze

    KiCad (Wikipedie), sada svobodných softwarových nástrojů pro počítačový návrh elektronických zařízení (EDA), byl vydán v nové major verzi 10.0.0 (𝕏). Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    20.3. 13:22 | IT novinky

    Letošní Turingovou cenu (2025 ACM A.M. Turing Award, Nobelova cena informatiky) získali Charles H. Bennett a Gilles Brassard za základní přínosy do oboru kvantové informatiky, které převrátily pojetí bezpečné neprolomitelné komunikace a výpočetní techniky. Jejich protokol BB84 z roku 1984 umožnil fyzikálně zaručený bezpečný přenos šifrovacích klíčů, zatímco jejich práce o kvantové teleportaci položila teoretické základy pro budoucí kvantový internet. Jejich práce spojila fyziku s informatikou a ovlivnila celou generaci vědců.

    Ladislav Hagara | Komentářů: 7
    20.3. 04:44 | Zajímavý článek

    Firefox 149 dostupný od 24. března přinese bezplatnou vestavěnou VPN s 50 GB přenesených dat měsíčně (s CZ a SK se zatím nepočítá) a zobrazení dvou webových stránek vedle sebe v jednom panelu (split view). Firefox Labs 149 umožní přidat poznámky k panelům (tab notes, videoukázka).

    Ladislav Hagara | Komentářů: 2
    20.3. 00:33 | Nová verze

    Byla vydána nová stabilní verze 7.9 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 146. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    20.3. 00:11 | Zajímavý software

    Dle plánu byla vydána Opera GX pro Linux. Ke stažení je .deb i .rpm. V plánu je flatpak. Opera GX je webový prohlížeč zaměřený na hráče počítačových her.

    Ladislav Hagara | Komentářů: 7
    19.3. 19:22 | Nová verze

    GNUnet (Wikipedie) byl vydán v nové major verzi 0.27.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.

    Ladislav Hagara | Komentářů: 0
    19.3. 04:00 | Bezpečnostní upozornění

    Byly publikovány informace (technické detaily) o bezpečnostním problému Snapu. Jedná se o CVE-2026-3888. Neprivilegovaný lokální uživatel může s využitím snap-confine a systemd-tmpfiles získat práva roota.

    Ladislav Hagara | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (29%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1126 hlasů
     Komentářů: 27, poslední 17.3. 19:26
    Rozcestník

    Dotaz: Sed - za posledni shodou pridat radek

    24.9.2007 15:56 artec | skóre: 24
    Sed - za posledni shodou pridat radek
    Přečteno: 633×
    Dobry den, pomoci regularnich vyrazu v sedu bych potreboval vyresit tento problem.

    Priklad:
    Hledany retezec: "cc"
    pridat radek: "xx"
    
    Vstupni data:
    
    aabbccddeeff
    aaaaaaaaaaaa
    aaabbbcccddd
    cccccccccccc
    aaaaaaaaaaaa
    aabbccbbbbbb
    xxxxxxxxxxxx
    
    Vystupni data:
    
    aabbccddeeff
    aaaaaaaaaaaa
    aaabbbcccddd
    cccccccccccc
    aaaaaaaaaaaa
    aabbccbbbbbb
    xx
    xxxxxxxxxxxx
    
    Manualove stranky sedu i sadu techto prikladu znam, ale stale s tim nemuzu hnout. Zatim vsechny me pokusy jsou ve vysledku temer stejne jako kdybych zadal jenom:

    # sed -e "/cc/ a\xx" ./vstupni_data

    Za kazde rady dekuji.

    Odpovědi

    24.9.2007 17:33 ajikdpoe | skóre: 23 | blog: dvh
    Rozbalit Rozbalit vše Re: Sed - za posledni shodou pridat radek
    mne to funguje:
    $ sed '/cc/ a\xx' vstupni_data 
    aabbccddeeff
    xx
    aaaaaaaaaaaa
    aaabbbcccddd
    xx
    cccccccccccc
    xx
    aaaaaaaaaaaa
    aabbccbbbbbb
    xx
    xxxxxxxxxxxx
    
    Za kazdy riadok kde je cc vypise xx
    24.9.2007 17:40 artec | skóre: 24
    Rozbalit Rozbalit vše Re: Sed - za posledni shodou pridat radek
    Asi jsem dotaz mozna napsal nesrozumitelne, ale potrebuji az za poslednim vyskytem "cc" v celem vstupnim souboru vlozit radek s "xx", tak, aby byl vysledek totozny s tim, jak jsem psal v dotazu.
    24.9.2007 18:15 Martin Doucha | skóre: 23 | blog: Yet another blog
    Rozbalit Rozbalit vše Re: Sed - za posledni shodou pridat radek
    Já bych na to použil AWK, načetl si celý vstup do paměti, průběžně si pamatoval konec řádku s posledním výskytem hledaného řetězce, na konci vložil xx na správné místo a všechno vypsal.
    24.9.2007 18:32 petr
    Rozbalit Rozbalit vše Re: Sed - za posledni shodou pridat radek
    A co grepem zjistit číslo poslední řádky a pak jen "poskládat" příkazy head a tail???

    Příklad:
    grep -n pattern input_file | tail -n 1 | sed 's/\([0-9]*\).*/\1/'
    
    vypíše číslo poslední řádky, která odpovídá.

    Pak jen stačí:
    LAST_LINE=`grep -n pattern input_file | tail -n 1 | sed 's/\([0-9]*\).*/\1/'`
    
    TAIL=`wc -l input_file | sed 's/\([ 0-9]*\).*/\1/'`
    TAIL=$(($TAIL - $LAST_LINE))
    
    head -n $LAST_LINE input_file > output_file
    echo náhrada >> output_file
    tail -n $TAIL input_file >> output_file
    
    zoul avatar 24.9.2007 19:11 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: Sed - za posledni shodou pridat radek
    Jestli se nemusíme držet sedu, tak v Perlu by to mohlo vypadat takhle:
    perl -0ne "s/cc(.*\n)(?\!cc)(.*)$/cc\1xx\n\2/g; print" < vstup.txt
    zoul avatar 24.9.2007 19:14 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: Sed - za posledni shodou pridat radek
    A nebo ještě o fous kratší, golfu se nedá odolat :)
    perl -0ne "s/(cc.*\n)(?\!cc)(.*)$/\1xx\n\2/; $_" < vstup.txt
    24.9.2007 20:16 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: Sed - za posledni shodou pridat radek

    Lze to napsat i jinak - je to kratší a mnohem míň srozumitelný :-):

    sed "`grep -n 'regexp' <vstupní-soubor | \
       tail -n 1 | cut -d: -f 1`apřidávaný řádek" \
       <vstupní-soubor

    Myslím, že by to šlo napsat i čistě v sedu (třeba příkazem N si celý soubor načíst do paměti a pak to nějak vyhledat (nebo třeba přetočit (2×) pořadí řádku a dávat před první výskyt), ale tohle bude určitě paměťově míň náročné.

    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    24.9.2007 20:29 artec | skóre: 24
    Rozbalit Rozbalit vše Re: Sed - za posledni shodou pridat radek
    Uz mi to funguje asi 5ti zpusoby. :)

    Dekuji vsem mnohokrat za rady (nakopnuti). Honza
    24.9.2007 22:41 huhuhu
    Rozbalit Rozbalit vše Re: Sed - za posledni shodou pridat radek
    1) aj ked je uz problem vyrieseny ...
    2) ... a nie som ziadny expert na sed

    ... tak predsa len - neexistuje nejaky prepinac REVERSE ?
    ja by som na to isiel opacne - najst prvy vyskyt od konca suboru a ten spracovat :-)
    24.9.2007 23:13 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Sed - za posledni shodou pridat radek
    tac

    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.