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 19:11 | Komunita

    Jelikož vývojáři editorů Vim a Neovim začali při vývoji využívat LLM, Drew DeVault se rozhodl forknout Vim a vytvořil projekt Vim Classic. Vychází z Vimu 8.2.0148, tj. těsně před zavedením Vim9 skriptování.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | Nová verze

    Byla vydána nová verze 0.56 open source počítačové hry Unvanquished (Wikipedie), forku počítačové hry Tremulous. Instalovat ji lze také z Flathubu.

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

    FreeCAD (Wikipedie), tj. svobodný multiplatformní parametrický 3D CAD, byl vydán ve verzi 1.1 (YouTube). Po roce a čtyřech měsících od předchozí verze 1.0. Přehled novinek i s náhledy v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 2
    včera 13:11 | IT novinky

    Společnost OpenAI oznámila [𝕏], že ukončí aplikaci Sora pro generování krátkých videí pomocí umělé inteligence. Podrobné informace a harmonogram pro aplikaci a API budou brzy zveřejněny.

    Ladislav Hagara | Komentářů: 6
    včera 12:22 | IT novinky

    Evropská směrnice NIS2 přináší nové požadavky v oblasti kybernetické bezpečnosti, které se promítají také do správy doménových jmen. Do českého právního řádu je směrnice implementována prostřednictvím nového zákona o kybernetické bezpečnosti. Jedním z praktických důsledků této legislativní změny je posílení požadavků na dostupnost a správnost kontaktních údajů držitelů domén. Správce registru domény .cz, sdružení CZ.NIC, je v

    … více »
    Ladislav Hagara | Komentářů: 26
    včera 01:55 | Nová verze

    Jonathan Thomas oznámil vydání nové verze 3.5.0 video editoru OpenShot (Wikipedie). Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.

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

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

    Ladislav Hagara | Komentářů: 0
    24.3. 16:33 | IT novinky

    Vláda jmenovala novým zmocněncem pro digitalizaci a strategickou bezpečnost prvního náměstka ministra vnitra Lukáše Klučku. Ten ve funkci nahradil poslance Roberta Králíčka poté, co Králíček na tento post vládního zmocněnce rezignoval. Klučka chce do roka digitalizovat všechny státní služby tak, aby vyhověly zákonu o právu na digitální služby, přičemž dosavadní plán Fialovy vlády počítal s dokončením digitalizace až někdy v roce

    … více »
    NUKE GAZA! 🎆 | Komentářů: 11
    24.3. 13:55 | Nová verze

    Byl vydán Mozilla Firefox 149.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vypíchnout lze bezplatnou vestavěnou VPN s 50 GB přenesených dat měsíčně, zobrazení dvou webových stránek vedle sebe v jednom panelu (split view) nebo možnost přidat poznámky k panelům (Firefox Labs). Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 149 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 6
    24.3. 13:22 | Nová verze

    Byly vydány nové verze 5.3.0 a 6.0.0 svobodného multiplatformního programu pro skicování, malování a úpravu obrázků Krita (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Obě verze vycházejí ze stejného zdrojového kódu – rozdíl je v použitých verzích Qt a KDE Frameworks. Krita 6.0.0 je první vydání postavené na Qt 6 a stále je považovaná za experimentální. Má lepší podporu Waylandu. Přináší podporu protokolu Wayland

    … více »
    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (29%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1151 hlasů
     Komentářů: 27, poslední 17.3. 19:26
    Rozcestník

    Dotaz: bash: Jak upravit soubor

    8.9.2017 16:15 michal
    bash: Jak upravit soubor
    Přečteno: 520×
    Jak zkrátit všechny řetězce v celém souboru na pět znaků ? Jde o to uřezat konec každého řetězce. Řetězce jsou bez mezer a jsou oddělené čárkami.

    Příklad - obsah původního souboru:

    ovoce,zelenina,mandarinky,jablka
    okurky,kapusta,cibule,chmel
    jahody,maliny,papriky,kokosy
    brambory,mirabelky

    Požadovaný obsah:

    ovoce,zelen,manda,jablk
    okurk,kapus,cibul,chmel
    jahod,malin,papri,kokos
    bramb,mirab

    Řešení dotazu:


    Odpovědi

    8.9.2017 16:27 Vlad
    Rozbalit Rozbalit vše Re: bash: Jak upravit soubor
    perl -pe 's/([^,\n]+)/substr $1, 0, 5/ge' < input > output

    nebo přímo upravit v souboru

    perl -pi -e 's/([^,\n]+)/substr $1, 0, 5/ge' text
    8.9.2017 23:50 michal
    Rozbalit Rozbalit vše Re: bash: Jak upravit soubor
    To je zajímavé, jak se v tom Perlu dají některé věci jednoduše řešit. Ale v tuto chvíli to funguje všechno, kromě odpovědi od Jirka. Díky všem.
    8.9.2017 16:35 Jirka
    Rozbalit Rozbalit vše Re: bash: Jak upravit soubor
    cut -b 1-5 soubor
    8.9.2017 20:11 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: bash: Jak upravit soubor
    cut -b 1-5 soubor
    Nevyhovuje - ořízne konce řádků, ale my chceme oříznout slova oddělená na řádku čárkami.
    -- OldFrog
    8.9.2017 20:09 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: bash: Jak upravit soubor
    Skript pro filtrování standardního vstupu na výstup - uložit do souboru filter.sh a nastavit spustitelnost:
    #!/bin/bash
    
    while read LINE;
    do
    	FIRST="Y";
    	echo "${LINE}" | sed 's!,!\n!g' | \
    	while read WORD;
    	do
    		if [ "${FIRST}" != "Y" ];
    		then
    			echo -ne ",";
    		fi;
    		echo -ne "${WORD}" | cut -z -c "1-5";
    		FIRST="N";
    	done;
    	echo -ne "\n";
    done;
    
    #eof
    
    Zdrojový text je v souboru a:
    # cat a
    ovoce,zelenina,mandarinky,jablka
    okurky,kapusta,cibule,chmel
    jahody,maliny,papriky,kokosy
    brambory,mirabelky
    
    Spuštění čte z a zapisuje do b:
    # ./filter.sh < a > b
    
    Výsledný text je v souboru b:
    # cat b
    ovoce,zelen,manda,jablk
    okurk,kapus,cibul,chmel
    jahod,malin,papri,kokos
    bramb,mirab
    
    -- OldFrog
    8.9.2017 20:34 scisoft
    Rozbalit Rozbalit vše Re: bash: Jak upravit soubor
    #!/bin/sh sed -E 's/([[:alpha:]]{1,5})[[:alpha:]]*([,$]*)/\1\2/g' zkus.txt

    Soubor 'zkus.txt' obsahuje: ovoce,zelenina,mandarinky,jablka okurky,kapusta,cibule,chmel jahody,maliny,papriky,kokosy brambory,mirabelky

    Vystup scriptu:

    ovoce,zelen,manda,jablk okurk,kapus,cibul,chmel jahod,malin,papri,kokos bramb,mirab
    10.9.2017 00:48 RM
    Rozbalit Rozbalit vše Re: bash: Jak upravit soubor
    sed -r 's/([^,]{,5})[^,]*/\1/g'
    
    8.9.2017 20:57 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: bash: Jak upravit soubor
    awk -F, 'BEGIN {OFS = ","}
        {
            for (i = 1; i <= NF; i++) {
                $i = substr($i, 1, 5)
            }
            print
        }' <data.txt
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.9.2017 21:04 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: bash: Jak upravit soubor

    To je domácí úkol na awk (skoro) one-linery, že jo.

    awk 'BEGIN {FS = ","; OFS = FS}
         {for (i = 1; i <= NF; ++i) $i = substr($i, 1, 5); print $0}'
    

    Jestli to ale musí být opravdu striktně v čistém bashi, tak prosím:

    IFS=','
    while read -a line; do
      echo -n "${line[0]:0:5}"
      for word in "${line[@]:1}"; do
        echo -n ",${word:0:5}"
      done
      echo
    done
    
    8.9.2017 22:21 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: bash: Jak upravit soubor

    Jestli to ale musí být opravdu striktně v čistém bashi, tak prosím:

    IFS=','
    while read -a line; do
      echo -n "${line[0]:0:5}"
      for word in "${line[@]:1}"; do
        echo -n ",${word:0:5}"
      done
      echo
    done
    
    Dobře, tohle je hezčí řešení než to moje :-)
    -- OldFrog
    9.9.2017 23:40 RM
    Rozbalit Rozbalit vše Re: bash: Jak upravit soubor
    IFS=','
    while read -a aline; do
      line="`printf '%.4s,' ${aline[@]}`"
      printf '%s\n' "${line:0:-1}"
    done
    
    9.9.2017 23:54 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: bash: Jak upravit soubor
    Tohle vypadá hezky. Trochu jsem si to upravil:
    #!/bin/bash
    
    while IFS=',' read -a aline; do
      line="`printf '%.5s,' ${aline[@]}`"
      printf '%s\n' "${line:0:-1}"
    done
    
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.9.2017 23:01 jekub
    Rozbalit Rozbalit vše Re: bash: Jak upravit soubor
    IFS=,
    function f5 {
       while :
       do
          echo -n "${1:0:5}"
          shift
          if [ -z $1 ]; then
             echo
             break
          fi
          echo -n "$IFS"
       done;
    }
    
    while read line;
    do
       f5 $line
    done;
    

    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.