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:55 | IT novinky

    Josef Průša představil novou velkoformátovou uzavřenou CoreXY 3D tiskárnu Prusa CORE One L a nový open source standard chytrých cívek OpenPrintTag i s novou přepracovanou špulkou.

    Ladislav Hagara | Komentářů: 1
    včera 18:33 | IT novinky

    Na GOG.com běží Autumn Sale. Při té příležitosti je zdarma hororová počítačová hra STASIS (ProtonDB: Platinum).

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Komunita

    Ubuntu 25.10 má nově balíčky sestavené také pro úroveň mikroarchitektury x86-64-v3 (amd64v3).

    Ladislav Hagara | Komentářů: 6
    včera 01:22 | Nová verze

    Byla vydána verze 1.91.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
    včera 00:11 | IT novinky

    Ministerstvo průmyslu a obchodu vyhlásilo druhou veřejnou soutěž v programu TWIST, který podporuje výzkum, vývoj a využití umělé inteligence v podnikání. Firmy mohou získat až 30 milionů korun na jeden projekt zaměřený na nové produkty či inovaci podnikových procesů. Návrhy projektů lze podávat od 31. října do 17. prosince 2025. Celková alokace výzvy činí 800 milionů korun.

    Ladislav Hagara | Komentářů: 5
    30.10. 23:44 | Komunita

    Google v srpnu oznámil, že na „certifikovaných“ zařízeních s Androidem omezí instalaci aplikací (včetně „sideloadingu“) tak, že bude vyžadovat, aby aplikace byly podepsány centrálně registrovanými vývojáři s ověřenou identitou. Iniciativa Keep Android Open se to snaží zvrátit. Podepsat lze otevřený dopis adresovaný Googlu nebo petici na Change.org.

    Ladislav Hagara | Komentářů: 0
    30.10. 15:22 | Nová verze

    Byla vydána nová verze 18 integrovaného vývojového prostředí (IDE) Qt Creator. S podporou Development Containers. Podrobný přehled novinek v changelogu.

    Ladislav Hagara | Komentářů: 2
    30.10. 12:55 | Nová verze

    Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 2.0. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).

    Ladislav Hagara | Komentářů: 1
    30.10. 02:55 | Nová verze

    Google Chrome 142 byl prohlášen za stabilní. Nejnovější stabilní verze 142.0.7444.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 20 bezpečnostních chyb. Za nejvážnější z nich bylo vyplaceno 50 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    30.10. 01:22 | IT novinky Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (48%)
     (19%)
     (18%)
     (23%)
     (16%)
     (21%)
     (16%)
     (17%)
    Celkem 292 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: Awk - funkce, více vstupních souborů

    23.12.2018 09:18 Lukáš
    Awk - funkce, více vstupních souborů
    Přečteno: 514×
    Příloha:
    Dobrý den, mohl bych poprosit o pomoc s awk? Mám soubor dcout1.active a zajímají mě čísla z tabulky Input-Output in F Format z 5. a šestého sloupce z konce souboru (řádek 27945) kromě řádku začínajícího 26. Všechna čísla bych chtěl useknout za 6 desetinných míst Jak se udělá, aby se nejdřív počítalo a pak se použila funkce t? /^11 / { print t($5*180/3.141592653589) "\n" t($6*180/3.141592653589); }

    Současný příkaz: /^$/ { flag=0; next; } /D Format/ { flag=0; next; } /F Format/ { flag=1; next; } /^ 9 / { print t($5) "\n" t($6); } /^10 / { print t($5) "\n" t($6); } /^11 / { print t($5*180/3.141592653589) "\n" t($6*180/3.141592653589); } /^15 / { print t($5*100) "\n" t($6*100); } /^16 / { print t($5) "\n" t($6); } /^20 / { print t($5*10) "\n" t($6*10); } /^23 / { print t($5) "\n" t($6); } /^24 / { print t($5) "\n" t($6); } function t(n, s) { s=index(n,"."); return (s ? substr(n,1,s+6) : n); }

    Jak napsat více vstupních souborů? awk -f code dcout1.active dcout2.active dcout3.active..... Jde to lépe?

    Proč mám špatně vyhraněnou tu oblast? Vypisují se tam i hodnoty z následující tabulky.

    Děkuji moc

    Odpovědi

    23.12.2018 09:20 abcde
    Rozbalit Rozbalit vše Re: Awk - funkce, více vstupních souborů
    Ahoj, nemůžeš dát k dispozici i ta data? Abychom si to mohli zkusit
    23.12.2018 09:32 Lukáš
    Rozbalit Rozbalit vše Re: Awk - funkce, více vstupních souborů
    Je to ten soubor dcout1.active nahoře.
    23.12.2018 10:15 Lukáš
    Rozbalit Rozbalit vše Re: Awk - funkce, více vstupních souborů
    Příloha:
    Tady je ještě druhý
    23.12.2018 10:17 Lukáš
    Rozbalit Rozbalit vše Re: Awk - funkce, více vstupních souborů
    Šlo by pak z každého souboru vypsat výstup - 16 čísel buď jako sloupce vedle sebe nebo jako řádky - jeden z jednoho souboru? Děkuji
    23.12.2018 10:25 abcde
    Rozbalit Rozbalit vše Re: Awk - funkce, více vstupních souborů
    Jo, oboji jde stahnout, az budu mit chvili zkusim na to mrknout, pripadne to zkusi nekdo jiny :0)
    23.12.2018 10:53 NN
    Rozbalit Rozbalit vše Re: Awk - funkce, více vstupních souborů
    Zeptam se jinak. Ten software, ze ktereho je export,co je to? Nedalo by se to premluvit k lepsimu vystupu samotneho exportu?
    23.12.2018 14:06 Lukáš
    Rozbalit Rozbalit vše Re: Awk - funkce, více vstupních souborů
    Je to výstup z programu PHOEBE, do toho bych nezasahoval. Vlatně mi ani nejde tak o to, že nefunguje ta oblast. Hlavně bych potřeboval ten výpočet s tím useknutím na 6 desetinných míst. a udělat to pro několik souborů najednou. Tamto si umažu.
    23.12.2018 14:11 Lukáš
    Rozbalit Rozbalit vše Re: Awk - funkce, více vstupních souborů
    Třeba tento program přesně tu oblast vypisoval:

    /^$/ { flag=0; next; } /D Format/ { flag=0; next; } /F Format/ { flag=1; next; } /^26 / { next; } flag && /^ *[0-9]/ { print t($5) "\n" t($6); } function t(n, s) { s=index(n,"."); return (s ? substr(n,1,s+6) : n); }

    a to

    43.685030

    0.106608

    0.080182

    0.000675

    2.734748

    0.011468

    0.219356

    0.001769

    83.864830

    0.115873

    2.250249

    0.004792

    3.936308

    0.005290

    7.491860

    0.009210

    ale potřeboval bych tam zahrnout to počítání.
    23.12.2018 22:22 pavele
    Rozbalit Rozbalit vše Re: Awk - funkce, více vstupních souborů
    Nevím jestli to pomůže, ale já jsem zaokrouhloval nějak takto:
    # promenna FS urcuje oddelovac sloupcu, v mem pripade je to ;
    # promenna OFMT urcuje pocet desetinnych mist a mezery mezi cisly
    echo " Aritmeticky prumer dat od $USERDATE3 $USERTIME1 do $USERDATE4 $USERTIME2" >/datalog_bin/prumer/ctiprumer.$$
    awk --use-lc-numeric 'BEGIN { FS = " "; print " Merici ustredna Difuse (OS GNU/Linux with Tux Inside)" }
    { s=s+$2; s1=s1+$3; s2=s2+$4; s3=s3+$5; s4=s4+$6; s5=s5+$7; s6=s6+$8; s7=s7+$9;\
     s8=s8+$10; s9=s9+$11; s10=s10+$12; s11=s11+$13; s12=s12+$14; s13=s13+$15; s14=s14+$16; s15=s15+$17 }
    END { OFMT= "%3.2f ";
     print ""
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_0", s/NR+0.00001, "%RH ", "Prumerna_vlhkost_Skrin_1")
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_1", s1/NR+0.00001, "°C ", "Prumerna_teplota_Skrin_1")
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_2", s2/NR+0.00001, "     ", " ")
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_3", s3/NR+0.00001, "     ", " ", " ")
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_4", s4/NR+0.00001, "%RH ", "Prumerna_vlhkost_Skrin_2")
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_5", s5/NR+0.00001, "\260C ", "Prumerna_teplota_Skrin_2")
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_6", s6/NR+0.00001, "     ", " ")
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_7", s7/NR+0.00001, "     ", " ")
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_8", s8/NR+0.00001, "%RH ", "Prumerna_vlhkost_Skrin_3")
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_9", s9/NR+0.00001, "\260C ", "Prumerna_teplota_Skrin_3")
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_10", s10/NR+0.00001, "   ", " ")
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_11", s11/NR+0.00001, "   ", " ")
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_12", s12/NR+0.00001, "%RH ", "Prumerna_vlhkost_okoli")
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_13", s13/NR+0.00001, "\260C ", "Prumerna_teplota_okoli")
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_14", s14/NR+0.00001, "kPa ", "Prumerny_tlak_vzduchu")
     printf("%-15s %6.2f %4s %-40s\n"," CHANNEL_15", s15/NR+0.00001, "   ", " ")}' \
    < /datalog_bin/prumer/doprumeru.dat.$$ >>/datalog_bin/prumer/ctiprumer.$$
    
    
    Výstup je takový:
     CHANNEL_0       59,91 %RH  Prumerna_vlhkost_Skrin_1                
     CHANNEL_1       22,71  °C  Prumerna_teplota_Skrin_1                
     CHANNEL_2        0,00                                               
     CHANNEL_3        0,00                                               
     CHANNEL_4       52,60 %RH  Prumerna_vlhkost_Skrin_2                
     CHANNEL_5       23,08  `C  Prumerna_teplota_Skrin_2                
     CHANNEL_6        0,00                                               
     CHANNEL_7        0,00                                               
     CHANNEL_8       73,46 %RH  Prumerna_vlhkost_Skrin_3                
     CHANNEL_9       22,68  `C  Prumerna_teplota_Skrin_3                
     CHANNEL_10       0,00                                              
     CHANNEL_11       0,00                                              
     CHANNEL_12      42,59 %RH  Prumerna_vlhkost_okoli                  
     CHANNEL_13      21,30  `C  Prumerna_teplota_okoli                  
     CHANNEL_14      99,10 kPa  Prumerny_tlak_vzduchu                   
     CHANNEL_15       0,00
    
    Více vstupních souborů:
    hlavicka="/datalog_bin/tlak-vzduchu-html/hlavicka"
    last200csv="/datalog_bin/tlak-vzduchu-html/200.csv"
    paticka0="/datalog_bin/tlak-vzduchu-html/paticka0"
    paticka="/datalog_bin/tlak-vzduchu-html/paticka"
    
    {                           #Start podminky
    if (hlavicka == 1)          #Pokud je promenna hlavicka=1, tiskni soubor1 (hlavicka)
      print
    if (hlavicka == 2)          #Pokud je promenna hlavicka=2, uprav soubor2 (200.csv)
    
    {                           #Start programu - uprav soubor2
    split($18, datum, "[\t -]")
    $18 = datum [3] "." datum [2] "." datum [1] " " datum [4]
                                                         #Vypocet relativniho tlaku vzduchu
    AbsPress = $16                                        #Absolutni tlak v kPa
    ElevationDifuse = "217"                               #Nadmorska vyska v m
    GravConst = "9,80665"                                 #Isaac Newton
    GasConst = "287,04"                                   #Merna plynova konstanta R = 287,04 J/K
    AverTempDifuse = $15 + (ElevationDifuse * "0,0025")   
    RelPressDifuse = AbsPress/exp(-ElevationDifuse * GravConst/(GasConst * ( "273,15" + AverTempDifuse ))) * 10* "1,0012"
    
    format1 = " %s ""\n"
    format2 = " %.2f °C ""\n"
    format3 = " %.3f kPa ""\n"
    format4 = " %.2f HPa ""\n"
    
    
    if ($0 !~ /[a-z]/) #V datech je radek s textem, ktery musim odfiltrovat
       {
       printf "" "\n"
       printf (format1 format2 format3 format4, $18, $15, $16, RelPressDifuse "\n")
       print "" "\n"
       }
    else
       {
       next
       }
    
    }                    #Stop programu
    
    
    if (hlavicka == 3)          #Pokud je promenna hlavicka=7, print tabletty1
    {
    print
    }
    
    { if (hlavicka == 4)          #Pokud je promenna hlavicka=3, print paticka0
    print
    }
    
    { if (hlavicka == 5)          #Pokud je promenna hlavicka=3, print aktualnihodnoty
    print 
    }
    
    { if (hlavicka == 6)          #Pokud je promenna hlavicka=3, print paticka
    print
    }
    
    
    }' hlavicka=1 "$hlavicka" hlavicka=2 "$last200csv" hlavicka=3 "$tabletty1" hlavicka=4 "$paticka0" hlavicka=5 "$aktualnihodnoty" hlavicka=6 "$paticka" |tee \
    "$destination1" "$destination2" >/dev/null
    
    done
    
    
    25.12.2018 07:19 Lukáš
    Rozbalit Rozbalit vše Re: Awk - funkce, více vstupních souborů
    Mockrát děkuji

    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.