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

    Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 26.08.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 17:33 | Zajímavý článek

    Bylo vydáno nové číslo hackerského magazínu tmp.0ut: Volume 5.

    Ladislav Hagara | Komentářů: 1
    včera 01:44 | Nová verze

    Byla vydána nová stabilní verze 8.2 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 152. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 1
    3.9. 23:11 | Nová verze

    Byla vydána nová stabilní verze 4.0 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). S rozhraním přepsaným do Qt. Přehled novinek také na YouTube. Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 2
    3.9. 16:55 | IT novinky

    NVIDIA kupuje Hugging Face za 12,93 miliardy dolarů.

    Ladislav Hagara | Komentářů: 4
    3.9. 15:44 | IT novinky

    Předobjednat si lze nový jednodeskový počítač Arduino VENTUNO Q s předinstalovaným Ubuntu. S 16 GB LPDDR5 a 64 GB eMMC. Pro lokální LLM, agentní AI, počítačové vidění, robotiku…

    Ladislav Hagara | Komentářů: 2
    3.9. 13:00 | Zajímavý software

    Hexpair není nejlepší HEX editor na světě a ani se o to nesnaží. Zato je k dispozici kdykoliv a kdekoliv – všude tam, kde máte svůj Vim. Vznikl jako hobby projekt před pár měsíci a dospěl do stavu, kdy by mohl být užitečný širší komunitě. Přepnout do HEX režimu se dá i uprostřed rozdělané práce: Soubor, který už máte otevřený běžným vim file.md, jedním příkazem přepnete do HEX editoru a dalším příkazem ho můžete vrátit zpět do textu. Kurzor přitom

    … více »
    Cohen | Komentářů: 1
    3.9. 01:55 | Nasazení Linuxu

    CERN dlouhodobě používal vlastní sestavení RHEL, ze kterého přešel na CentOS Stream. Federico Vaga a Nikos Tsipinakis ale nyní v přednášce na MiniDebConf Winterthur 2026 popisují plán probíhajícího přechodu na Debian pro řízení akcelerátorů. Důvodem k opuštění CentOS Stream jsou zachování zpětné kompatibility se starším hardwarem, kterou Red Hat narušuje, když tlačí sestavení balíčků pro novější verze architektury (x86-64), a nedostatečné nástroje pro sestavování vlastních balíčků a repozitářů.

    |🇵🇸 | Komentářů: 21
    3.9. 01:44 | Nová verze

    UZDoom (Wikipedie), tj. fork GZDoom, byl vydán ve verzi 5.0.0. Videopředstavení na YouTube. Podrobný přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 1
    2.9. 16:11 | Nová verze

    Příručka Linux From Scratch pro sestavení základního linuxového systému byla aktualizována v pravidelném půlročním termínu. Vydání 13.1 shrnuje přes 40 nových verzí balíčků a několik patchů. Navazující příručka Beyond Linux From Scratch s recepty pro sestavení dalších knihoven a aplikací zatím vydána nebyla, ačkoliv vývojová verze stále dostává aktualizace. Lze je číst online nebo stáhnout v HTML či PDF.

    |🇵🇸 | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (3%)
     (20%)
     (29%)
     (7%)
     (5%)
     (2%)
     (14%)
     (21%)
    Celkem 2573 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: bash: Jak upravit soubor

    8.9.2017 16:15 michal
    bash: Jak upravit soubor
    Přečteno: 557×
    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.