abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 15:44 | Nová verze

    Byl vydán Mozilla Firefox 126.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Vylepšena byla funkce "Zkopírovat odkaz bez sledovacích prvků". Přidána byla podpora zstd (Zstandard). Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 126 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | Nová verze

    Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 11.0. Přehled novinek v aktualizované dokumentaci.

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

    Byla vydána nová verze 24.0 linuxové distribuce Manjaro (Wikipedie). Její kódové jméno je Wynsdey. Ke stažení je v edicích GNOME, KDE PLASMA a XFCE.

    Ladislav Hagara | Komentářů: 2
    včera 13:00 | Nová verze

    Byla představena oficiální rozšiřující deska Raspberry Pi M.2 HAT+ pro připojování M.2 periferii jako jsou NVMe disky a AI akcelerátory k Raspberry Pi 5. Cena je 12 dolarů.

    Ladislav Hagara | Komentářů: 2
    včera 12:44 | Pozvánky

    V Praze o víkendu proběhla bastlířská událost roku - výstava Maker Fair v Praze. I strahovští bastlíři nelenili a bastly ostatních prozkoumali. Přijďte si proto i vy na Virtuální Bastlírnu popovídat, co Vás nejvíce zaujalo a jaké projekty jste si přinesli! Samozřejmě, nejen českou bastlířskou scénou je člověk živ - takže co se stalo ve světě a o čem mohou strahováci něco říct? Smutnou zprávou může být to, že provozovatel Sigfoxu jde do

    … více »
    bkralik | Komentářů: 0
    včera 12:33 | Humor

    Kam asi vede IllllIllIIl.llIlI.lI? Zkracovač URL llIlI.lI.

    Ladislav Hagara | Komentářů: 1
    13.5. 22:00 | IT novinky

    Společnost OpenAI představila svůj nejnovější AI model GPT-4o (o jako omni, tj. vše). Nově také "vidí" a "slyší". Videoukázky na 𝕏 nebo YouTube.

    Ladislav Hagara | Komentářů: 0
    13.5. 15:44 | Zajímavý článek

    Ondřej Filip publikoval reportáž z ceremonie podpisu kořenové zóny DNS. Zhlédnout lze také jeho nedávnou přednášku Jak se podepisuje kořenová zóna Internetu v rámci cyklu Fyzikální čtvrtky FEL ČVUT.

    Ladislav Hagara | Komentářů: 0
    13.5. 14:22 | IT novinky

    Společnost BenQ uvádí na trh novou řadu monitorů RD určenou pro programátory. První z nich je RD240Q.

    Ladislav Hagara | Komentářů: 20
    13.5. 13:00 | IT novinky

    Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem nadále zůstává Frontier od HPE (Cray) s výkonem 1,206 exaFLOPS. Druhá Aurora má oproti loňsku přibližně dvojnásobný počet jader a dvojnásobný výkon: 1,012 exaFLOPS. Novým počítačem v první desítce je na 6. místě Alps. Novým českým počítačem v TOP500 je na 112. místě C24 ve Škoda Auto v Mladé Boleslavi. Ostravská Karolina, GPU

    … více »
    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (73%)
     (6%)
     (11%)
     (11%)
    Celkem 254 hlasů
     Komentářů: 16, poslední včera 11:05
    Rozcestník

    Dotaz: Prohození řádků v souboru

    30.1.2019 12:35 Jakub
    Prohození řádků v souboru
    Přečteno: 617×
    Dobrý den pánové, mám napsaný nějaký script v bash v linuxu pro příkazovou řádku a nemůžu nikde dohledat, jak zaměnit celé řádky v textovém souboru. Třeba 5 řádek za 159. Dá někdo tip?

    Odpovědi

    30.1.2019 15:22 debian+
    Rozbalit Rozbalit vše Re: Prohození řádků v souboru
    napriklad: vstup
    1
    7
    3
    4
    5
    6
    2
    8
    
    skript.sh:
    #!/bin/bash
    
    # ktory < za
    ktory=2
    za=7
    subor="vstup"
    vystup="vystup"
    riadkov=`cat vstup|wc -l`
    
    # uvod 
    cat vstup |head -n $((ktory-1)) > vystup
    
    # za
    cat vstup |head -n $za | tail -n 1 >> vystup
    
    # medzi ktory za
    cat vstup |head -n $((za-1)) | tail -n $((za-ktory-1)) >> vystup
    
    # ktory
    cat vstup |head -n $ktory | tail -n 1 >> vystup
    
    # koniec
    cat vstup | tail -n $((riadkov-za)) >> vystup
    
    30.1.2019 15:41 Ja
    Rozbalit Rozbalit vše Re: Prohození řádků v souboru
    #!/usr/bin/env bash
    
    if [[ "$2" -gt "$1" ]]; then
      p1="$1"
      p2="$2"
    else
      p1="$2"
      p2="$1"
    fi
    
    cp data.txt data.out.txt
    
    r1=$(sed -n "${p1}p" data.out.txt)
    r2=$(sed -n "${p2}p" data.out.txt)
    sed -i "
    ${p1}i${r2}
    ${p1}d
    ${p2}i${r1}
    ${p2}d
    " data.out.txt
    cat data.out.txt
    
    
    30.1.2019 17:05 debian+
    Rozbalit Rozbalit vše Re: Prohození řádků v souboru
    Tvoje je efektivnejsie:
    [localhost tip]$ time bash skript.sh 
    
    real	0m0,023s
    user	0m0,014s
    sys	0m0,018s
    [localhost tmp]$ time bash skript_Ja.sh 2 7
    
    real	0m0,016s
    user	0m0,007s
    sys	0m0,009s
    31.1.2019 02:56 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Prohození řádků v souboru

    Tolik UUOC nejen bije do očí, ale možná už i dokonce smrdí z terminálu.

    31.1.2019 17:38 debian+
    Rozbalit Rozbalit vše Re: Prohození řádků v souboru
    Prepisal som to na lepsie:
    #!/bin/bash
     
    # ktory < za
    ktory=2
    za=6
    riadkov=`cat data.txt|wc -l`
    
    # uvod 
    cat << EOF > data.out.txt
    `head -n $((ktory-1)) data.txt`
    `head -n $za data.txt | tail -n 1`
    `head -n $((za-1)) data.txt| tail -n $((za-ktory-1))`
    `head -n $ktory data.txt| tail -n 1`
    `tail -n $((riadkov-za)) data.txt`
    EOF
    cat data.out.txt
    31.1.2019 03:31 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Prohození řádků v souboru

    Chápu to správně tak, že to má vzájemně prohodit nějaké dva řádky a že to má být jenom v Bashi?

    Tak potom bych tady měl obecnější prasárnu, která těch záměn umí několik, ale funguje jen tehdy, pokud se soubor vejde do paměti. Definuje funkci swaplines, která přijímá jako parametry dvojice číslel řádků (od 0) k prohození, oddělené pomlčkou. Například tohle by desetiřádkový vstup převrátilo naruby:

    swaplines 0-9 1-8 2-7 3-6 4-5
    

    A teď ta funkce swaplines:

    swaplines() {
      local -a -i from_to
      local -a file
      local -i from
      local -i to
      local aux
      for aux in "$@"; do
        from_to["${aux%%-*}"]="${aux##*-}"
      done
      readarray -t file
      for from in "${!from_to[@]}"; do
        to="${from_to[from]}"
        aux="${file[from]}"
        file[from]="${file[to]}"
        file[to]="$aux"
      done
      for aux in "${file[@]}"; do
        echo "$aux"
      done
    }
    

    Čte to standardní vstup, píše to na standardní výstup a nemá to vůbec žádnou kontrolu chyb syntaxe — tu bych s chutí ponechal čtenáři za cvičení.

    31.1.2019 19:51 pavele
    Rozbalit Rozbalit vše Re: Prohození řádků v souboru
    Je to taky v bashi, vymění mezi sebou řádek 5 a 8 :-)
    #!/bin/bash
    
    vim -e -c '5m 8' -c '7m 4' -c 'wq' soubor.txt 
    
    31.1.2019 22:38 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Prohození řádků v souboru
    Ked sa to da v "ed" mode vo vim-e, tak to predsa musi ist aj rovno v ed-e

    echo -e "5m8\n8-m5-\nw\nq\n" | ed -s subor.txt
    If you hold a Unix shell up to your ear, you can you hear the C.
    31.1.2019 23:02 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Prohození řádků v souboru

    Ano, že má být něco „v bashi“, to se dá chápat různými způsoby. Já vycházím z toho, vim není bash.

    1.2.2019 01:18 Bherzet | skóre: 19 | blog: Bherzetův blog
    Rozbalit Rozbalit vše Re: Prohození řádků v souboru
    Třeba 5 řádek za 159.
    5 za 159, nebo 5. za 159.?

    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.