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 10:22 | Humor

    Už jste se prolétli na webu Google Earth? Přibyl tam Simulátor letu (Nástroje / Simulátor letu). Funguje i bez účtu Google [𝕏].

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

    Byla vydána nová verze 4.7 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 2
    18.6. 13:33 | Nová verze

    Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.6. Přehled novinek s náhledy v oznámení na blogu.

    Ladislav Hagara | Komentářů: 0
    18.6. 12:44 | IT novinky

    V Edici CZ.NIC, knižní řady správce české národní domény, vychází nová kniha Martina Malého Kódy, buildy, firmwary. Autor po půl roce od vydání předchozího titulu přichází se svou již sedmou knihou, tentokrát zaměřenou na vývoj programového vybavení pro embedded zařízení. Publikace s podtitulem Základy vývojářského řemesla pro tvůrce hobby elektroniky nabízí praktického průvodce pro všechny, kdo své projekty vytvořené s Arduinem

    … více »
    Ladislav Hagara | Komentářů: 0
    18.6. 11:44 | Komunita

    V Brně na FIT VUT probíhá dvoudenní open source komunitní konference DevConf.CZ 2026. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.

    Ladislav Hagara | Komentářů: 0
    18.6. 04:22 | Nová verze

    Byla vydána nová verze 15.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    17.6. 19:11 | Zajímavý projekt

    Vývojáři Ubuntu představili projekt Myna, tj. iniciativu zaměřenou na přidání funkce převodu řeči na text do prostředí desktopu Ubuntu. Dle plánu již v Ubuntu 26.10.

    Ladislav Hagara | Komentářů: 6
    17.6. 18:33 | Zajímavý software

    Společnost Epic Games představila nový open source systém pro správu verzí Lore navržený pro "bezprecedentní škálovatelnost dat i týmů a optimalizovaný pro projekty, včetně her a zábavy, které kombinují kód s velkými binárními soubory, aby uspokojil potřeby vývojářů i umělců". Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 0
    17.6. 15:33 | IT novinky

    Úřad pro ochranu hospodářské soutěže (ÚOHS) provedl v říjnu 2024 místní šetření u společnosti Seznam.cz. Úřad prověřoval důvodné podezření na možné protisoutěžní jednání, konkrétně zneužití dominantního postavení. Krajský soud v Brně v květnu 2025 konstatoval, že toto šetření bylo nezákonné. Nejvyšší správní soud (NSS) včera rozhodl, že šetření bylo provedeno v souladu se zákonem. Krajský soud bude muset případ posoudit znovu.

    Ladislav Hagara | Komentářů: 0
    17.6. 12:22 | IT novinky

    Byl představen skládací telefon Commodore Callback 8020. Ani hloupý, ani chytrý. Pro fanoušky Commodore a digitálního minimalismu. Bez webového prohlížeče a sociálních sítí. S předinstalovaným WhatsAppem. S operačním systémem Sailfish OS.

    Ladislav Hagara | Komentářů: 6
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (16%)
     (31%)
     (3%)
     (6%)
     (3%)
     (15%)
     (26%)
    Celkem 1941 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Perl - funkce smazat řádek ze souboru

    Indiánský lotr avatar 13.10.2010 10:23 Indiánský lotr | skóre: 25 | blog: ucim_sa
    Perl - funkce smazat řádek ze souboru
    Přečteno: 652×

    Ahoj, snažím se udělat si skriptík na náhodný výběr vtipu ze souboru vtipy.txt, vybraný vtip se vypíše a poté uloží do vtipy2.txt. Ovšem nevím dál jak zavolat a použít funkci "tr" či "sed" tak, aby vybraný vtip z původního vtipy.txt smazal. Buď se může zavolat přímo smazání řádku podle nahodne_cislo, nebo vyhledat řetězec $vtip a smazat pomoci něj.

    #!/usr/bin/perl
      use strict;
      use warnings;
      my $rozsah = `wc -l vtipy.txt | sed -n 's/[^0-9 ]//gp'`;
      my $nahodne_cislo;
    
      do
      {
        $nahodne_cislo = int(rand($rozsah));
      } until ($nahodne_cislo != 0);
    
    
      my $vtip = `cat vtipy.txt |  head -n $nahodne_cislo | tail -n 1`;
    
      my $file = 'vtipy2.txt';
      open(vti2, ">>$file");
      print vti2 "$vtip";
      close(vti2);
    
      print "$vtip";
      print "Celkovy rozsah vtipu - (test): $rozsah";
      #system("`cat vtipy.txt | sed -i '/$vtip/d' > vtipy3.txt`");
      my @args = ( "bash", "-c", "cat vtipy.txt | sed -i '/$vtip/d' > vtipy3.txt" );
      system(@args);
    

    Odpovědi

    13.10.2010 11:39 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Perl - funkce smazat řádek ze souboru
    ``, wc, sed ???
    skus toto
    my @vtipy = <vtipy.txt>;
    my $nahodne_cislo = int rand scalar @vtipy
    my ($vtip) = splice @vtipy, $nahodne_cislo, 1;
    
    open VTIPY, '>', 'vtipy.txt' or die "vtipy.txt: $!\n"
    open VTIPY2, '>', 'vtipy2.txt' or die "vtipy2.txt: $!\n"
    
    print VTIPY2 $vtip;
    print VTIPY @vtipy;
    
    close VTIPY;
    close VTIPY2;
    
    13.10.2010 12:39 NeoV | skóre: 23
    Rozbalit Rozbalit vše Re: Perl - funkce smazat řádek ze souboru
    hh... 3 systemove volania pri 15 riadkovom Perl skripte :-)

    riesenie je zhruba take ako ti uz ukazal happy barney a v plne funkcnej podobe vyzera takto:
    #!/usr/bin/perl
    use strict;
    use warnings;
    
    open FH, "vtipy.txt" or die "Cannot open file";
    my @vtipy = <FH>;
    close FH;
    
    my $nahodne_cislo = int(rand($#vtipy));
    my $vtip = splice(@vtipy,$nahodne_cislo,1);
    
    print "Vyberam vtip cislo: ".($nahodne_cislo+1)."\n";
    print "Vtip: $vtip";
    
    open(FH, ">vtipy2.txt") or die "Cannot open file";
    print FH $vtip;
    close(FH);
    
    open(FH, ">vtipy.txt") or die "Cannot open file";
    print FH @vtipy;
    close(FH);
    
    
    13.10.2010 12:49 zulu
    Rozbalit Rozbalit vše Re: Perl - funkce smazat řádek ze souboru
    ...
    Indiánský lotr avatar 13.10.2010 13:17 Indiánský lotr | skóre: 25 | blog: ucim_sa
    Rozbalit Rozbalit vše Re: Perl - funkce smazat řádek ze souboru
    Pravda mohl sem to hodit do bashe :-) jj dobre napsane, mam se co ucit,..
    13.10.2010 17:56 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Perl - funkce smazat řádek ze souboru
    To ne, to by bylo moc jednoduché :)
    l=$(wc -l < vtipy.txt)
    l=$(($RANDOM % $l))
    sed -n -e "$l p" vtipy.txt >> vtipy2.txt
    sed -i "$l d" vtipy.txt
    pek avatar 20.10.2010 16:23 pek | skóre: 20
    Rozbalit Rozbalit vše Re: Perl - funkce smazat řádek ze souboru
    A co třeba použít fortune  :^)
    13.10.2010 14:18 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Perl - funkce smazat řádek ze souboru
    rozdiel "scalar @" a "$#" je, ze v tvojom pripade sa nikdy nevyberie posledny prvok :-)
    13.10.2010 19:54 NeoV_anon
    Rozbalit Rozbalit vše Re: Perl - funkce smazat řádek ze souboru
    Jojo... som si to potom vsimol... :) cakal som presne opacne chovanie rand-u :-)
    13.10.2010 19:59 NeoV_anon
    Rozbalit Rozbalit vše Re: Perl - funkce smazat řádek ze souboru
    resp. ani nie randu... ale miesto int (ktory iba osekava desatinu cast) staci pouzit ceil (ktory uz robi spravne zaokruhlovanie :-) )
    20.10.2010 21:36 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Perl - funkce smazat řádek ze souboru
    jen si dovolím připomenout pár vymožeností moderní doby

    open VTIPY -> open my $vtipy

    or die... -> use autodie
    In Ada the typical infinite loop would normally be terminated by detonation.

    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.