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

Po 9 týdnech vývoje od vydání Linuxu 5.17 oznámil Linus Torvalds vydání Linuxu 5.18 (LKML). Přehled nových vlastností a vylepšení na stránce Linux Kernel Newbies.

Ladislav Hagara | Komentářů: 0
včera 14:44 | Komunita

V Ubuntu 22.10 s kódovým jménem Kinetic Kudu bude zvukový server PulseAudio nahrazen multimediálním serverem PipeWire.

Ladislav Hagara | Komentářů: 6
21.5. 22:44 | Zajímavý článek

Tavis Ormandy popisuje, jak zprovoznil 32 let starý unixový port tabulkového procesoru Lotus 1-2-3 na moderním Linuxu. Doprovodné zdrojové kódy jsou na GitHubu.

Fluttershy, yay! | Komentářů: 5
21.5. 17:00 | Nová verze

Po pěti měsících vývoje od vydání verze 250 byla vydána nová verze 251 správce systému a služeb systemd (GitHub, NEWS).

Ladislav Hagara | Komentářů: 2
21.5. 15:44 | IT novinky

HP ve spolupráci se System76 představil 14" notebook HP Dev One s procesorem AMD Ryzen 7 PRO a předinstalovaným Pop!_OS Linuxem.

Ladislav Hagara | Komentářů: 12
21.5. 15:00 | Nová verze

Byla vydána verze 1.61.0 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
19.5. 00:33 | Zajímavý článek

Správce nástroje curl Daniel Stenberg na GitHubu průběžně vytváří svou novou knihu Uncurled, v níž shrnuje své dlouhodobé zkušenosti s údržbou open-source projektu: od odpozorovaných pouček po vtipné a ne až tak vtipné příklady e-mailů od uživatelů.

Fluttershy, yay! | Komentářů: 27
19.5. 00:22 | Nová verze

Byla vydána nová major verze 25.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Přehled novinek v příspěvku na blogu.

Ladislav Hagara | Komentářů: 5
19.5. 00:11 | Nová verze

Deno (Wikipedie), běhové prostředí (runtime) pro JavaScript a TypeScript, bylo vydáno ve verzi 1.22. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
18.5. 18:22 | Nová verze

Společnost Red Hat oznámila vydání Red Hat Enterprise Linuxu (RHEL) 9.0. Vedle nových vlastností a oprav chyb přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 8
Na sociálních sítích nebo jiných webových diskuzích vystupuji pod
 (62%)
 (15%)
 (23%)
Celkem 319 hlasů
 Komentářů: 27, poslední včera 17:10
Rozcestník


Dotaz: nahrada za prazdneho radku za cislo

31.3.2005 22:21 koudelka | skóre: 2
nahrada za prazdneho radku za cislo
Přečteno: 77×
Ahoj vsichni.

Potreboval bych pomoci s nasledujicim problemem (PROSIM).

mam textovy soubor, ktery se sklada z nasledujicich radku:

pradny radek

text

text

..

text

prazdny radek

text

prazdny radek

text

text

atd.

Popis: v souboru je prazdny radeya pak nasleduje jeden nebo vice radku textu a stale se to opakuje. A ja potrebuji na zacatek kazdeho textu (do toho pradneho radku) napsat cislo kolik nasleduje radku textu(az po dalsi mezeru).

Asi by se to melo resit pres cyklus until nebo while (na konec souboru) a nasledne hledat pradne radky od zacatku textoveho souboru, kdyz ten prazdny radek naleznu, tak se aktivuje dalsi cyklus, kde se znovu testuje pritomnost prazdneho radku a ukladam do promenne, kolikrat jsem musel tento cyklus provest, nez jsem narazil na dalsi prazdny radek, kdyz se tak stane, tak cyklus skonci a ja provedu nahrazeni pouze toho jednoho pradneho radku ulozenou promennou (kolikrat jsem musel opakovat vnoreny cyklus), pro ktery se toto vztahuje a pokracuji dale v prohledavani souboruaz na konec.

Vysledek:

V souboru bude text a vsechny pradne radky budou nahrazeny cislem, ktere budou odpovidat poctu radku textu(ktere nasleduji za cislem) .

priklad:

2

text

text

3

text

text

text

1

text

1

text

Toto reseni se mi zda velice tezkopadne, tak se ptam, existuje nejake elegantneji reseni a pokud ANO, tak jake.

Diky za pomoc

Odpovědi

31.3.2005 22:50 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: nahrada za prazdneho radku za cislo
tac soubor | sed '1{x;s/^/0/;x;};/^$/{g;p;s/.*/0/;h;d};x;s/$/+/;:1;t2;:2;s/^+0/01/;s/0+/1/;s/1+/+0/;t1;x' | tac
Vypisuje to ty počty řádků binárně, protože se mi nechtělo psát inkrementování pro každou desítkovou číslici. Ale to si snadno doplníš ;-)
31.3.2005 22:51 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: nahrada za prazdneho radku za cislo
Zapomněl jsem dodat: Zdravím Pichiho -- víš, že existuje implementace dc v sedu?
31.3.2005 23:02 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: nahrada za prazdneho radku za cislo
OK, tady je to v desítkové soustavě:
tac soubor | sed '1{x;s/^/0/;x;};/^$/{g;p;s/.*/0/;h;d};x;s/$/+/;:1;t2;:2;s/^+0/10/;s/0+/1/;s/1+/2/;s/2+/3/;s/3+/4/;s/4+/5/;s/5+/6/;s/6+/7/;s/7+/8/;s/8+/9/;s/9+/+0/;t1;x' | tac
31.3.2005 23:06 © | skóre: 37 | blog: escaped
Rozbalit Rozbalit vše Re: nahrada za prazdneho radku za cislo
Chceš nás vyděsit? Skoro se Ti to povedlo. :-D
2.4.2005 02:11 koudelka | skóre: 2
Rozbalit Rozbalit vše Re: nahrada za prazdneho radku za cislo
diky

po dlouhe dobe jsem to pochopil. jak na to, tak uvidim,
2.4.2005 10:42 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: nahrada za prazdneho radku za cislo
Tu prostřední část můžeš napsat snáz v ledasčem, napsal jsem ji v sedu, protože jsem měl sedovou náladu. Trik je v těch tac na začátku a na konci...
2.4.2005 11:07 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: nahrada za prazdneho radku za cislo
Třeba v Perlu (samozřejmě s využitím Yetiho cool tac|...|tac nápadu)... :-)

tac soubor|perl -pe '(/./ and ++$x) or ($_="$x\n" and $x=)' |tac
2.4.2005 14:41 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: nahrada za prazdneho radku za cislo
Ale udělat to celé v jednom průchodu a držet si v paměti jen aktuální blok textu by snížilo paměťovou náročnost na O(délka nejdelšího bloku) ;-)
2.4.2005 14:48 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: nahrada za prazdneho radku za cislo
Aha, ne tak docela, tac si standardní vstup ukládá na disk.
2.4.2005 15:33 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: nahrada za prazdneho radku za cislo
Šlo by to samozřejmě udělat jednoprůchodově a v pythonu či perlu by to byla trivialita. Dokonce i v sedu by to šlo celkem snadno -- musel by sis jen na začátku hold space uchovávat počítadlo a přidávat do něj řádky; až by skončil blok, celé bys to vypsal; trochu otravná by byla korektní inicializace a ukončení. Chm, ve srovnání s tou inkrementací v destíkové soustavě by se tím asi ten program ani moc neprodloužil.

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.