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 04:44 | Pozvánky

    O víkendu probíhá na FIT VUT v Brně konference OpenAlt 2026 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma. Přednášky lze sledovat i online na VHSky a YouTube.

    Ladislav Hagara | Komentářů: 0
    dnes 02:11 | IT novinky

    Qualcomm uzavřel víceletou dohodu se SpaceX. Bude dodávat rádiové technologie, baseband jednotky a software pro plánovanou pozemní 5G síť Starlink Mobile. Výstavba má zahrnovat desítky tisíc základnových stanic v USA. Zahájení nasazování se očekává v roce 2027. Qualcomm dohodu označuje za svůj dosud největší 5G kontrakt.

    vencour | Komentářů: 0
    dnes 02:00 | IT novinky

    Google rozšířil Cloud Vulnerability Reward Program. Nově nabízí odměnu až 250 tisíc dolarů za vysoce závažné architektonické bezpečnostní chyby označované jako Root-in-Cloud.

    vencour | Komentářů: 0
    včera 12:22 | IT novinky

    V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.

    Ladislav Hagara | Komentářů: 0
    včera 04:55 | Nová verze

    Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.

    Ladislav Hagara | Komentářů: 3
    včera 03:22 | Nová verze

    Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    5.11. 19:53 | Bezpečnostní upozornění
    V Xenu objevena zranitelnost. Chyba v mechanismu grant copy umožňuje škodlivému virtuálnímu stroji číst a přepisovat libovolnou paměť jiných VM včetně privilegované domény Dom0. Dotčené verze jsou Xen 4.6 a novější. V upstreamu jsou dostupné patche pro Xen 4.17 až 4.19 a vývojovou větev. Pro starší nepodporované verze 4.6–4.16 nejsou v XSA-523 přiloženy opravy.
    vencour | Komentářů: 1
    5.11. 16:55 | Nová verze

    Multimediální přehrávač mpv byl vydán ve verzi 0.42.0. Jde o větší balík změn po bezmála roce. Mimo jiné se lépe integruje s Waylandem nebo rozšiřuje podporu DVD/Blu-ray, např. umožňuje přehrávat rovnou obrazy médií (soubory iso).

    ʚĭɞ 🍉 | Komentářů: 0
    5.11. 12:22 | Nová verze

    Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.5.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    5.11. 12:11 | Nová verze

    Byla vydána (𝕏) nová verze 8.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2992 hlasů
     Komentářů: 35, poslední včera 23:27
    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: 825×
    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: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Sed - za posledni shodou pridat radek
    tac

    Založit nové vlákno • Nahoru

    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.