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:22 | Komunita

Na dnes, poslední středu v březnu, připadá Document Freedom Day (DFD, Wikipedie), jenž má upozornit na výhody otevřených standardů a formátů dokumentů. Organizátoři se rozhodli, že letos proběhne Document Freedom Day dvakrát. Druhý letošní Document Freedom Day proběhne 26. dubna.

Ladislav Hagara | Komentářů: 0
včera 12:33 | Nová verze

Byla vydána nová stabilní verze 1.8 (1.8.770.50) webového prohlížeče Vivaldi (Wikipedie). Z novinek vývojáři zdůrazňují vylepšenou historii prohlížení. Ukázka na YouTube. Chromium bylo aktualizováno na verzi 57.0.2987.111.

Ladislav Hagara | Komentářů: 0
včera 05:55 | Zajímavý projekt

Google na svém blogu věnovaném open source představil portál Google Open Source informující mimo jiné o více než 2000 open source projektech vyvíjených nebo používaných v Googlu.

Ladislav Hagara | Komentářů: 0
včera 03:33 | IT novinky

Pro společnost Red Hat skončil 28. února fiskální rok 2017. Dle finančních výsledků bylo čtvrté čtvrtletí, stejně jako celý fiskální rok 2017, opět úspěšné. Tržby jsou zvyšovány již 60 čtvrtletí v řadě. Za čtvrté čtvrtletí 2017 to bylo 629 milionů dolarů, tj. meziroční nárůst 16 %. Tržby za celý fiskální rok činily 2,4 miliardy dolarů, tj. meziroční nárůst 18 %.

Ladislav Hagara | Komentářů: 2
28.3. 18:22 | Bezpečnostní upozornění

V balíčku eject, příkaz pro vysunutí CD/DVD z mechaniky, v linuxových distribucích Ubuntu (USN-3246-1) a Debian (#858872) byla nalezena bezpečnostní chyba CVE-2017-6964 zneužitelná k lokální eskalaci práv. Linuxové distribuce používající eject z balíčku util-linux nejsou zranitelné.

Ladislav Hagara | Komentářů: 15
28.3. 05:55 | Komunita

Dries Buytaert, autor a vedoucí projektu Drupal a prezident Drupal Association, požádal soukromě před několika týdny Larryho Garfielda, jednoho z klíčových vývojářů Drupalu, aby projekt Drupal opustil. Larry Garfield minulý týden na svých stránkách napsal, že důvodem jsou jeho BDSM praktiky a rozpoutal tím bouřlivou diskusi. Na druhý den reagoval Dries Buytaert i Drupal Association. Pokračuje Larry Garfield [reddit].

Ladislav Hagara | Komentářů: 55
28.3. 04:44 | Humor

Společnost SAS zveřejnila na svých stránkách studii s názvem Open Source vs Proprietary: What organisations need to know (pdf). Organizace by měly například vědět, že ideální je mix 40 % open source softwaru a 60 % proprietárního softwaru [Slashdot].

Ladislav Hagara | Komentářů: 12
27.3. 23:33 | Zajímavý software

Byl vydán ShellCheck ve verzi 0.4.6. Jedná se o nástroj pro statickou analýzu shellových skriptů. Shellové skripty lze analyzovat na webové stránce ShellChecku, v terminálu nebo přímo z textových editorů. Příklady kódů, na které analýza upozorňuje a doporučuje je přepsat. ShellCheck je naprogramován v programovacím jazyce Haskell. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GPLv3.

Ladislav Hagara | Komentářů: 0
27.3. 23:33 | Pozvánky

Czech JBoss User Group zve na setkání JBUG v Brně, které se koná ve středu 5. dubna 2017 v prostorách Fakulty informatiky Masarykovy univerzity v místnosti A318 od 18:00. Přednáší Pavol Loffay na téma Distributed Tracing and OpenTracing in Microservice Architecture.

… více »
mjedlick | Komentářů: 0
27.3. 11:33 | Zajímavý článek

Národní centrum kybernetické bezpečnosti (NCKB) vypracovalo (pdf) 26 podrobných bezpečnostních doporučení pro síťové správce. Tato doporučení jsou nastavena tak, aby je bylo možné aplikovat v každé instituci. Jsou rozdělena na tři základní části: bezpečnost infrastruktury, bezpečnost stanic a serverů a bezpečnost uživatelů.

Ladislav Hagara | Komentářů: 17
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (14%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 967 hlasů
 Komentářů: 72, poslední 1.3. 11:16
    Rozcestník

    Dotaz: Jak zjistím počet řádků v textovém souboru?

    4.5.2005 12:41 ivitek | skóre: 5 | blog: Z_nudy
    Jak zjistím počet řádků v textovém souboru?
    Přečteno: 5906×
    Dobrý den, potřebuji zjistit počet řádků v textovém souboru - buď přes nějakou funkci PHP nebo nějaký linuxový příkaz. Prostě, když jsou tam 3 řádky, aby to vypsalo 3 :-)
    "Jidášku, kamaráde, můžeš mluvit... Hele je tam pro tebe třicetník za kříž..."

    Řešení dotazu:


    Odpovědi

    4.5.2005 12:43 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    wc -l
    4.5.2005 13:02 ivitek | skóre: 5 | blog: Z_nudy
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Tak spíš v PHP, exec mi to nějak nebere :-(
    "Jidášku, kamaráde, můžeš mluvit... Hele je tam pro tebe třicetník za kříž..."
    4.5.2005 13:07 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Tak to holt musíš použít fopen(), fread() (není-li soubor velký, tak file_get_contents()) , ... a spočítat znaky \n, např. count_chars().
    wake avatar 4.5.2005 13:04 wake | skóre: 30 | blog: wake | Praha
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    co si třeba ten soubor otevřít v textovém režimu a počítat konce řádků ? co třeba místo wc -l pouštět /usr/bin/wc -l ?
    Tento příspěvek má hlavičku i patičku!
    25.4.2006 12:18 kafi | skóre: 24 | blog: muj_prvni_blog
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Zdravim, toto vlakno uz je nejaky ten patek stare. Ale jelikoz jsem neco hledal a narazil jsem na nej tak bych chtel upresnit odpoved na otazku tykajici se formy PHP. Co takhle si nacist soubor do pole pomoci file a pak count (pole) a mame pocet radku. Protoze nacteni do pole celeho souboru se dela tak ze kazdy prvek pole obsahuje jeden radek. Priklad:
    
    $pole_soubor=file ($jm_file);
    $pocet_radku=count($pole_soubor);
    echo $pocet_radku;
    
    PS: kdyby nekdo nekdy tady neco hledal tak at najde komplet odpoved na toto vlakno
    25.4.2006 12:42 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Geniální. To si načteme ten soubor celý, pak si ho samozřejmě celý uložíme do paměti a nakonec si zjistíme, kolik to má řádek. A na to jste přišel sám, nebo vám s tím někdo pomohl? Nějaký elegantnější způsob jak si říct o zásah OOM killera by nebyl?
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    25.4.2006 20:05 Vlastimil Ott | skóre: 66 | blog: Plastique | Opava
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Vytvořit si pole těchto polí a zjistit tak délky více souborů zároveň?

    :-D
    Práce: Liberix, o.p.s. | Blog: OpensourceBlog.cz | Online kurz Zlatý WordPress
    25.4.2006 21:27 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Proč pole? Proč ne rovnou strom - hezky všechny soubory ve filesystému, pak už bude hračka vytáhnout z toho tu správnou hodnotu. :-)
    25.4.2006 21:30 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Už dlouho mne fascinuje, jak jsou někteří "programátoři", kteří nikdy nepoznali nic jiného než PHP, schopni produkovat konstrukce, které sice opticky vypadají elegantně, ale jejich skutečná implementace je zoufale neefektivní. Musím přiznat, že se vám právě podařilo toto umění pozvednout na kvalitativně novou úroveň…
    6.6.2011 09:45 kubaak
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Vyřešil jsem to takto a funguje to.

    $zaznamy=file("cenik2.txt");

    $id=count($zaznamy);
    6.6.2011 20:19 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Vida, došel jste k stejně šílenému řešení jako kolega kafi. On má ovšem polehčující okolnost, že mu to trvalo jen rok, ne šest jako vám… :-)
    7.6.2011 09:32 Atom321 | skóre: 20
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    No, k obraně šílených kolegů si dovolím podotknout:
    • Pro malé soubory to bude fungovat výborně.
    • Správné řešení k tomuto dotazu zatím nikdo nenapsal.
    Řešení 1× (Atom321)
    stativ avatar 7.6.2011 09:47 stativ | skóre: 54 | blog: SlaNé roury
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    I tohle je řekl bych lepší než načítat celý soubor do paměti:
    $lines = 0;
    $f = fopen("soubor", "r");
    if ($f) {
      while (fgets($f) != false) {
        line++;
      }
      fclose($f);
    }
    
    Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
    7.6.2011 10:07 mato
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    a v samej podstate prave tak funguje aj wc
    7.6.2011 10:23 Atom321 | skóre: 20
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Ano, ale wc nemusí být všude dostupné. (Typicky na hostingu se zapnutým safe_mode.)
    7.6.2011 14:21 mato
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    jasne; mojim komentom som nechcel 'zdrbat' autora .. prave naopak, principialne urobil to, co robi wc, teda kvazi optimalne (oproti horeuvedenym navrhom).

    inak z orig. wc kodu:
    
                    /*
                     * Line counting is split out because it's a lot faster to get
                     * lines than to get words, since the word count requires some
                     * logic.
                     */
                    if (doline) {
                            while ((len = read(fd, buf, MAXBSIZE))) {
    
    
    rADOn avatar 7.6.2011 13:49 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Pořád je tam zbytečné tlačení celé řádky do paměti. Nepamatuji si už php přesně, ale určitě má funkci na čtení po znacích.
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    stativ avatar 7.6.2011 13:53 stativ | skóre: 54 | blog: SlaNé roury
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Taková fce tam myslím je, ale nepamatuji si jaká.
    Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
    7.6.2011 13:54 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Čtení po řádcích (nebo blocích) je rychlejší, než po znacích.
    rADOn avatar 7.6.2011 14:44 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Po blocích ano. Po řádcích jen když jsou krátké. Proto taky znakové funkce v libc i kernel mají vlastní buffery, víme?
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    7.6.2011 20:35 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Soubor 58 MB, 1202011 řádek:
    wc             ...  16.763 s
    wc -l          ...   0.176 s
    PHP file()     ... Allowed memory size of 134217728 bytes exhausted
    PHP po řádcích ...   2.183 s
    PHP po znacích ... 167.147 s
    
    Nejsme v libc ani v kernelu, ale v PHP, víme?
    7.6.2011 20:48 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?

    Fajn, a co takhle 58MB soubor o jednom řádku? :-)

    Obecně nejefektivnější bude načítat soubor pomocí fread() po blocích, řekněme 4 KB, počítat LF a pak případně přičíst jedničku za poslední neukončený řádek.

    7.6.2011 21:11 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?

    Fajn, a co takhle 58MB soubor o jednom řádku? :-)

    Tentýž soubor, nahradil jsem konce řádků tečkou:
    wc             ...  17.088 s
    wc -l          ...   0.137 s
    PHP file()     ...   0.361 s
    PHP po řádcích ...   0.250 s
    PHP po znacích ... 165.240 s
    

    Obecně nejefektivnější bude načítat soubor pomocí fread() po blocích, řekněme 4 KB, počítat LF a pak případně přičíst jedničku za poslední neukončený řádek.

    Opět: Netuším, jak to bude v C, testy jsem dělal pouze v programech wc a PHP.
    7.6.2011 21:26 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?

    To je docela zvláštní, že jednou se vám ten soubor do paměti nevešel a podruhé stejně velký ano…

    Opět: Netuším, jak to bude v C, testy jsem dělal pouze v programech wc a PHP.

    Ale já přece nemluvil o C, i PHP má funkci fread().

    7.6.2011 21:36 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?

    To je docela zvláštní, že jednou se vám ten soubor do paměti nevešel a podruhé stejně velký ano…

    Nic zvláštního. Paměťový limit mám v PHP 128 MB. Pole s jedním 58MB řetězcem zabere méně místa, než pole s 1202011 řetězci o úhrnné délce 58MB.

    Ale já přece nemluvil o C, i PHP má funkci fread().

    Psát se mi to už nechce, ale vím, že to bude trvat dlouho. Dvojitý (příp. vícenásobný) cyklus ve skriptovacích jazycích celkem spolehlivě zabíjí výkon aplikace.
    8.6.2011 09:05 Filip Jirsák | skóre: 66 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Psát se mi to už nechce, ale vím, že to bude trvat dlouho. Dvojitý (příp. vícenásobný) cyklus ve skriptovacích jazycích celkem spolehlivě zabíjí výkon aplikace.
    Myslíte, že když ten cyklus nevidíte (je schovaný v nějaké knihovní funkci), bude to s výkonem lepší?
    8.6.2011 09:10 l4m4
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Je-li ta funkce nativní (což základní knihovní funkce bývají), tak určitě bude.
    8.6.2011 09:22 Filip Jirsák | skóre: 66 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Nemusí být. Navíc zrovna cyklus má JIT kompilátor šanci zoptimalizovat za běhu lépe, než jak to může zoptimalizovat statický kompilátor.
    8.6.2011 10:25 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    To je zažitý mýtus, který v PHP nefunguje. Proto se téměř vždy vyplatí najít alespoň přibližně vhodnou knihovní funkci místo vytváření dalšího vnitřního cyklu. Změř si to.
    8.6.2011 21:19 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Bohužel v PHP je každá smyčka while či for navíc citelně poznat. A od určité (dávné) verze je vhodnější na pole používat foreach, jen proto, že používá vnitřní iterátor a bývá většinou o kousek rychlejší než for.
    Níže jsou výsledky z testu, které to dokazaují.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Řešení 2× (Atom321, volvox)
    7.6.2011 22:22 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?

    Ale já přece nemluvil o C, i PHP má funkci fread().

    Ještě mi docvaklo, že to půjde s fread() i jinak, než vnořeným cyklem a to s funkcí substr_count(). Výsledek 0.207 s pro jednořádkový 58MB soubor a 0.251 s pro původní soubor jsou velmi příznivé, vlastně u PHP nejlepší. Zároveň to bude bezpečně fungovat i pro velmi dlouhé soubory a velmi dlouhé řádky. A protože je to vítěz, zde je zdroják:
    define('LF',chr(10));
    $handle = fopen("soubor.txt","rb");
    $lines = 0;
    while (!feof($handle)) {
        $lines+=substr_count(fread($handle, 8192),LF);
    }
    fclose($handle);
    
    Ovšem pro krátké soubory bych použil raději fgets(), výsledky budou přesné i v případě chybějícího LF na konci.
    8.6.2011 00:11 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Jo to bude ta správná kombinace pro PHP :-)
    U mě náhodně vytvořené filesy 58MiB:
                         fgetc(): 14.769s (po znacích/bytech)
          fread() 2×cyklus  4KiB:  9.326s 
          fread() 2×cyklus 32KiB:  9.248s (v C by toto bylo asi nejrychlejší)
             file_get_contents():  9.209s (načtení celého souboru a smyčka)
                             wc :  2.375s
                  file() count():  0.222s (načtení do pole řádků)
                         fgets():  0.127s (čtení po řádcích)
     fread() substr_count() 8KiB:  0.060s
    fread() substr_count() 32KiB:  0.051s
                          wc -l :  0.024s
    
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    5.8.2011 20:33 oookkk
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    Já bych ještě doplnil, že kolega Michal Kubeček má jen blbé kecy, ale sám na žádné řešení nepřišel. :)
    5.8.2011 20:47 Kit
    Rozbalit Rozbalit vše Re: Jak zjistím počet řádků v textovém souboru?
    A já bych ještě doplnil, že oookkk nepřispěl ani blbými kecy k tématu, ale jen blbými kecy k diskutujícímu. Oba tyto naše příspěvky si zasluhují redakční smazání.

    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.