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í
×

    8.11. 00:33 | Nová verze

    Byla vydána OpenIndiana 2026.10. Unixový operační systém OpenIndiana (Wikipedie) vychází z OpenSolarisu (Wikipedie).

    Ladislav Hagara | Komentářů: 16
    8.11. 00:22 | IT novinky

    Americký výrobce polovodičů onsemi (ON Semiconductor) zrušil plány na rozšíření výroby v rožnovském závodě v Česku za dvě miliardy dolarů (podle aktuálního kurzu zhruba 43,5 mld. Kč). Důvodem je vývoj na trhu.

    Ladislav Hagara | Komentářů: 34
    7.11. 13:00 | Bezpečnostní upozornění
    Nové vydání zlib opravuje několik problémů při kompresi a dekompresi dat, přetečení bufferů, čtení mimo vyhrazenou paměť, únik neinicializovaných dat. Zvlášť významné jsou chyby v inflateGetDictionary(), inflateSync() a gzwrite(), které mohou způsobit poškození paměti. Vysoká relevance - zlib používá řada systémových i aplikačních komponent.
    vencour | Komentářů: 3
    7.11. 12:25 | Bezpečnostní upozornění
    Digicert hlásí neoprávněné čtení archivních zákaznických údajů. Došlo k němu po migraci z února 2025, po níž se interní systém, dříve dostupný jen přes VPN, stal přístupným z internetu. Chyba v oprávněních umožnila nově vytvořeným účtům číst archivní záznamy. K přístupu k datům mělo dojít mezi 27. červnem a 2. červencem 2026. DigiCert neoprávněné čtení potvrdil až 19. října 2026. Problém zpočátku vyhodnotil jako tvorbu účtů, ne jako … více »
    vencour | Komentářů: 2
    7.11. 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
    7.11. 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ářů: 1
    7.11. 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
    6.11. 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ářů: 5
    6.11. 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
    6.11. 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
    Které desktopové prostředí na Linuxu používáte?
     (8%)
     (7%)
     (4%)
     (21%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 3040 hlasů
     Komentářů: 36, poslední 11.11. 22:38
    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: 940×

    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á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.