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 00:44 | Zajímavý článek

    Máirín Duffy a Brian Smith v článku pro Fedora Magazine ukazují použití LLM pro diagnostiku systému (Fedora Linuxu) přes Model Context Protocol od firmy Anthropic. I ukázkové výstupy v samotném článku obsahují AI vygenerované nesmysly, např. doporučení přeinstalovat balíček pomocí správce balíčků APT z Debianu místo DNF nativního na Fedoře.

    |🇵🇸 | Komentářů: 5
    včera 04:55 | Zajímavý software

    Projekt D7VK dospěl do verze 1.0. Jedná se o fork DXVK implementující překlad volání Direct3D 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.

    Ladislav Hagara | Komentářů: 0
    12.12. 16:00 | Nová verze

    Byla vydána nová verze 2025.4 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení na blogu.

    Ladislav Hagara | Komentářů: 2
    12.12. 12:44 | IT novinky

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) zveřejnil Národní politiku koordinovaného zveřejňování zranitelností (pdf), jejímž cílem je nejen zvyšování bezpečnosti produktů informačních a komunikačních technologií (ICT), ale také ochrana objevitelů zranitelností před negativními právními dopady. Součástí je rovněž vytvoření „koordinátora pro účely CVD“, jímž je podle nového zákona o kybernetické … více »

    Ladislav Hagara | Komentářů: 11
    12.12. 04:33 | Nová verze

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.12. Přehled novinek i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    12.12. 03:55 | Nová verze

    Společnost System76 vydala Pop!_OS 24.04 LTS s desktopovým prostředím COSMIC. Videoukázky na YouTube.

    Ladislav Hagara | Komentářů: 0
    12.12. 03:11 | Nová verze

    Byla vydána verze 1.92.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
    12.12. 01:33 | Komunita

    Free Software Foundation zveřejnila ocenění Free Software Awards za rok 2024. Oceněni byli Andy Wingo, jeden ze správců GNU Guile, Alx Sa za příspěvky do Gimpu a Govdirectory jako společensky prospěšný projekt.

    |🇵🇸 | Komentářů: 5
    11.12. 18:55 | Nová verze

    Bylo vydáno Eclipse IDE 2025-12 aneb Eclipse 4.38. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    11.12. 17:44 | Nová verze

    U příležitosti oslav osmi let prací na debianím balíčku vyšlo GPXSee 15.6. Nová verze přináší především podporu pro geotagované MP4 soubory, včetně GoPro videí. Kdo nechce čekat, až nová verze dorazí do jeho distribuce, nalezne zdrojové kódy na GitHubu.

    Martin Tůma | Komentářů: 16
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (48%)
     (19%)
     (17%)
     (23%)
     (15%)
     (24%)
     (15%)
     (17%)
    Celkem 462 hlasů
     Komentářů: 19, poslední 11.12. 20:04
    Rozcestník

    Dotaz: sed - výběr řádků v souboru podle času

    27.11.2007 22:50 pavel
    sed - výběr řádků v souboru podle času
    Přečteno: 622×
    Dobrý den, mám takovýto soubor:
    xxx;xx;xxx;xxx;2007-03-28;10:20:05
    xxx;xx;xxx;xxx;2007-03-28;16:20:05
    xxx;xx;xxx;xxx;2007-03-28;21:20:05
    xxx;xx;xxx;xxx;2007-03-28;23:20:05
    xxx;xx;xxx;xxx;2007-03-29;00:20:05
    xxx;xx;xxx;xxx;2007-03-29;06:20:05
    xxx;xx;xxx;xxx;2007-03-29;11:20:05
    xxx;xx;xxx;xxx;2007-03-29;14:20:05
    xxx;xx;xxx;xxx;2007-03-29;20:20:05
    xxx;xx;xxx;xxx;2007-03-30;10:20:05
    ------------
    ------------
    
    Mám např. tyto proměnné:
    Datum_start=2007-03-28
    Hodina_start=18:02:10
    Datum stop=2007-03-29
    Hodina_stop=16:21:55
    
    Potřeboval bych vypsat všechny řádky od Datum_start -Hodina_start do Datum stop - Hodina_stop. Umím vypsat řádky jen podle datumu:

    sed -n "/$Datum_start/,/$Datum_stop/ p"

    Zkoušel jsem:

    sed -n "/$Datum_start [$Hodina_start]/,/$Datum_stop/ p", ale toto mi nefunguje. Nevím, jak přidat tu druhou proměnnou, aby to vypsalo řádky od $Hodina_start.

    Odpovědi

    27.11.2007 23:41 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    A proč zrovna sed? Přijde mi na to lepší awk
    user@stroj:~$ awk -F\; '{if ($5>="2007-03-28" && $5<="2007-03-28") print $0}' test.txt
    xxx;xx;xxx;xxx;2007-03-28;10:20:05
    xxx;xx;xxx;xxx;2007-03-28;16:20:05
    xxx;xx;xxx;xxx;2007-03-28;21:20:05
    xxx;xx;xxx;xxx;2007-03-28;23:20:05
    
    A podmínky si lze nakombinovat dle libosti..
    28.11.2007 00:32 pavel
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    Tak přesně toto v sedu umím, ale co s těmi hodinami?
    28.11.2007 00:40 pavel
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    Díky, už jsem to pochopil, stačilo jen přidat další podmínku za && ... Dobrou noc
    28.11.2007 09:00 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    Proč zrovna awk? Přijde mi na to lepší sed :)
    sed -n "/$Datum_start;$Hodina_start/,/$Datum_stop;&Hodina_stop/p"
    28.11.2007 09:01 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    Překlep
    sed -n "/$Datum_start;$Hodina_start/,/$Datum_stop;$Hodina_stop/p
    "
    28.11.2007 09:27 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    Nemusíš se trefit do té správné startovací hodiny..
    28.11.2007 10:07 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    Pravda, nevšiml jsem si že ty hodiny nezná přesně.... (na pohled přesně vypadaly, asi jako počet obyvatel republiky:).
    28.11.2007 11:47 pavel
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    Tak jsem se unáhlil:

    1. Takto to funguje:

    user@stroj:~$ awk -F\; '{if ($5>="2007-03-28" && $5<="2007-03-28") print $0}' test.txt

    2. Takto ne, nevezme to tu druhou proměnnou "Datum_stop". Neví někdo proč?

    user@stroj:~$ awk -F\; '{if ($5>="$Datum_start" && $5<="$Datum_stop") print $0}' test.txt
    28.11.2007 12:53 mlz
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    Problem v expanzi ''

    awk -F\ -v DSTART=$Datum_start -v DSTOP=$Datum_stop '{}' v awk budou promenne Datum_start mapovana na DSTART
    28.11.2007 14:05 pavel
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    Tak výběr podle datumu s proměnnými už funguje:
    user@stroj:~$ awk -F\; -v datstart=$Datum_start -v datstop=$Datum_stop \
    '{if ($5>=datstart && $5<=datstop) print $0}' test.txt
    Neví někdo, jak tam ještě přidat ty hodiny?
    28.11.2007 14:46 macrek | skóre: 12
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    napriklad takto:

    awk -F\; -v datstart=$datum_start -v datstop=$datum_stop -v hodstart=$hodina_start -v hodstop=$hodina_stop '$5 == datstart && $6 == hodstart,$5 == datstop && $6 == hodstop{print}' sample.txt
    An eye for an eye makes the whole world blind.
    28.11.2007 16:12 pavel
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    Mám např. tyto proměnné:
    datum_start=2007-03-28
    hodina_start=18:02:10
    datum_stop=2007-03-29
    hodina_stop=16:21:55
    awk -F\; -v datstart=$datum_start -v datstop=$datum_stop -v hodstart=$hodina_start -v 
    
    hodstop=$hodina_stop '$5 == datstart && $6 == hodstart,$5 == datstop && $6 == hodstop{print}' test.txt
    Nezobrazí nic.
    28.11.2007 16:33 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    Bodejť ;-) Stačí se jen kouknout na podmínky.. "==" není totéž co ">=" nebo ">"
    28.11.2007 20:08 macrek | skóre: 12
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    tak ako som to napisal, tak som to napisal :) tie podmienky su dobre, funguje to spravne:

    user@neuron-ai ~ $ cat test.txt
    1 xxx;xx;xxx;xxx;2007-03-28;10:20:05
    2 xxx;xx;xxx;xxx;2007-03-28;16:20:05
    3 xxx;xx;xxx;xxx;2007-03-28;21:20:05
    4 xxx;xx;xxx;xxx;2007-03-28;23:20:05
    5 xxx;xx;xxx;xxx;2007-03-29;00:20:05
    6 xxx;xx;xxx;xxx;2007-03-29;06:20:05
    7 xxx;xx;xxx;xxx;2007-03-29;11:20:05
    8 xxx;xx;xxx;xxx;2007-03-29;14:20:05
    9 xxx;xx;xxx;xxx;2007-03-29;20:20:05
    10 xxx;xx;xxx;xxx;2007-03-30;10:20:05
    
    user@neuron-ai ~ $ cat oddo
    #!/bin/bash
    datum_start=2007-03-28
    hodina_start=21:20:05
    datum_stop=2007-03-29
    hodina_stop=20:20:05
    
    awk -F\; -v datstart=$datum_start -v datstop=$datum_stop \
    -v hodstart=$hodina_start -v hodstop=$hodina_stop '$5 == datstart && \
    $6 == hodstart,$5 == datstop && $6 == hodstop{print}' test.txt
    
    user@neuron-ai ~ $ ./oddo
    3 xxx;xx;xxx;xxx;2007-03-28;21:20:05
    4 xxx;xx;xxx;xxx;2007-03-28;23:20:05
    5 xxx;xx;xxx;xxx;2007-03-29;00:20:05
    6 xxx;xx;xxx;xxx;2007-03-29;06:20:05
    7 xxx;xx;xxx;xxx;2007-03-29;11:20:05
    8 xxx;xx;xxx;xxx;2007-03-29;14:20:05
    9 xxx;xx;xxx;xxx;2007-03-29;20:20:05
    

    Problem je v zle naplnenych premennych. Ak tvoj test.txt obsahuje to iste co moj, tak je jasne, ze ti to nepojde, pretoze sa nenajde dany cas (hodina_start).

    "Program" samozrejme hlada presny vyskyt retazca. Teda datum/cas musi presne sediet s nejakym datumom/casom v test.txt.
    An eye for an eye makes the whole world blind.
    28.11.2007 20:30 pavel
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    Toto také nefunguje:
    awk -F\; -v datstart=$datum_start -v datstop=$datum_stop -v hodstart=$hodina_start -v 
    
    hodstop=$hodina_stop '$5 >= datstart && $6 >= hodstart,$5 <= datstop && $6 <= hodstop{print}' test.txt
    28.11.2007 22:48 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    Bodejť by to taky fungovalo, když se ti z toho úplně vytratily podmínky. Koukni se na původní podobu toho příkladu.Dnes už je pozdě na to abych myslel, takže ti to nenapíšu.
    28.11.2007 23:10 pavel
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    Abych to zrekapituloval... Mám takovýto soubor test.txt:
    xxx;xx;xxx;xxx;2007-03-28;10:20:05
    xxx;xx;xxx;xxx;2007-03-28;16:20:05
    xxx;xx;xxx;xxx;2007-03-28;21:20:05
    xxx;xx;xxx;xxx;2007-03-28;23:20:05
    xxx;xx;xxx;xxx;2007-03-29;00:20:05
    xxx;xx;xxx;xxx;2007-03-29;06:20:05
    xxx;xx;xxx;xxx;2007-03-29;11:20:05
    xxx;xx;xxx;xxx;2007-03-29;14:20:05
    xxx;xx;xxx;xxx;2007-03-29;20:20:05
    xxx;xx;xxx;xxx;2007-03-30;10:20:05
    ------------
    ------------
    
    Mám např. tyto proměnné:
    Datum_start=2007-03-28
    Hodina_start=18:02:10
    Datum stop=2007-03-29
    Hodina_stop=16:21:55
    
    Chci vypsat řádky od Datum_start - Hodina_start do Datum stop - Hodina_stop. Problém je, že se Hodina_start a Hodina_stop nemusí přesně shodovat s údaji v souboru test.txt. Nakonec jsem přišel na toto řešení:
    #prevede datum a cas v souboru test.txt (napr.2007-03-28;18:02:10)\
    #na cislo (napr. 20070328180210) a ulozi do souboru test1.txt
    cat test.txt|sed '/-/s///g;/:/s///g;/;/s///5'>test1.txt 
    
    datumstart=2007-03-28
    hodinastart=18:02:10
    #vysledna promenna start bude mit format 20070328180210
    start=$(echo $datumstart$hodinastart|sed '/-/s///g;/:/s///g;/;/s///5')
    
    
    datumstop=2007-03-29
    hodinastop=16:21:55
    #vysledna promenna stop bude mit format 20070329162155
    stop=$(echo $datumstop$hodinastop|sed '/-/s///g;/:/s///g;/;/s///5')
    
    #vypise radky od 2007-03-28 16:20:05 do 2007-03-29 16:20:05
    awk -F\; -v datstart=$start -v datstop=$stop\
     '{if ($5>=datstart && $5<=datstop) print $0}' test1.txt
    
    Pokud se někomu nelíbí ten cat, tak je to proto, že mi to tyto stránky nechtěli vzít (nepovolený text test.txt). A jestli má někdo jednodušší řešení, sem s tím. By
    29.11.2007 00:25 Pavel1 | skóre: 33
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    2 zjednodušení :

    Pom.soub. test1.txt :
    sed 's/[-:]//g;/;/s///5' test.txt > test1.txt
    start (a podobně i stop) :
    start=${datumstart//-/}${hodinastart//:/}
    29.11.2007 00:30 Pavel1 | skóre: 33
    Rozbalit Rozbalit vše Re: sed - výběr řádků v souboru podle času
    Teda takto jsem to chtěl napsat :
    sed 's/[-:]//g;s/;//5' test.txt > test1.txt

    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.