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 11:55 | Humor

    Microsoft poskytl FBI uživatelské šifrovací klíče svého nástroje BitLocker, nutné pro odemčení dat uložených na discích třech počítačů zabavených v rámci federálního vyšetřování. Tento krok je prvním známým případem, kdy Microsoft poskytl klíče BitLockeru orgánům činným v trestním řízení. BitLocker je nástroj pro šifrování celého disku, který je ve Windows defaultně zapnutý. Tato technologie by správně měla bránit komukoli kromě

    … více »
    NUKE GAZA! 🎆 | Komentářů: 27
    včera 01:44 | Komunita

    Spotify prostřednictvím svého FOSS fondu rozdělilo 70 000 eur mezi tři open source projekty: FFmpeg obdržel 30 000 eur, Mock Service Worker (MSW) obdržel 15 000 eur a Xiph.Org Foundation obdržela 25 000 eur.

    Ladislav Hagara | Komentářů: 3
    23.1. 18:11 | Zajímavý software

    Nazdar! je open source počítačová hra běžící také na Linuxu. Zdrojové kódy jsou k dispozici na GitHubu. Autorem je Michal Škoula.

    Ladislav Hagara | Komentářů: 2
    23.1. 16:55 | Nová verze

    Po více než třech letech od vydání verze 1.4.0 byla vydána nová verze 1.5.0 správce balíčků GNU Guix a na něm postavené stejnojmenné distribuci GNU Guix. S init systémem a správcem služeb GNU Shepherd. S experimentální podporou jádra GNU Hurd. Na vývoji se podílelo 744 vývojářů. Přibylo 12 525 nových balíčků. Jejich aktuální počet je 30 011. Aktualizována byla také dokumentace.

    Ladislav Hagara | Komentářů: 8
    23.1. 15:44 | Zajímavý software

    Na adrese gravit.huan.cz se objevila prezentace minimalistického redakčního systému GravIT. CMS je napsaný ve FastAPI a charakterizuje se především rychlým načítáním a jednoduchým ukládáním obsahu do textových souborů se syntaxí Markdown a YAML místo klasické databáze. GravIT cílí na uživatele, kteří preferují CMS s nízkými nároky, snadným verzováním (např. přes Git) a možností jednoduchého rozšiřování pomocí modulů. Redakční

    … více »
    2012 | Komentářů: 0
    23.1. 12:55 | Zajímavý software

    Tým Qwen (Alibaba Cloud) uvolnil jako open-source své modely Qwen3‑TTS pro převádění textu na řeč. Sada obsahuje modely VoiceDesign (tvorba hlasu dle popisu), CustomVoice (stylizace) a Base (klonování hlasu). Modely podporují syntézu deseti různých jazyků (čeština a slovenština chybí). Stránka projektu na GitHubu, natrénované modely jsou dostupné na Hugging Face. Distribuováno pod licencí Apache‑2.0.

    NUKE GAZA! 🎆 | Komentářů: 0
    23.1. 01:11 | Nová verze

    Svobodný citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 8. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    22.1. 16:55 | Nová verze

    Byla vydána verze 1.93.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
    22.1. 14:00 | Komunita

    Svobodný operační systém ReactOS (Wikipedie), jehož cílem je kompletní binární kompatibilita s aplikacemi a ovladači pro Windows, slaví 30. narozeniny.

    Ladislav Hagara | Komentářů: 8
    22.1. 11:00 | IT novinky

    Společnost Raspberry Pi má nově v nabídce flash disky Raspberry Pi Flash Drive: 128 GB za 30 dolarů a 256 GB za 55 dolarů.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (18%)
     (5%)
     (0%)
     (10%)
     (22%)
     (3%)
     (5%)
     (2%)
     (11%)
     (34%)
    Celkem 607 hlasů
     Komentářů: 17, poslední 22.1. 15:24
    Rozcestník

    Dotaz: Rekurzivne nahradenie/vymazanie znaku v 2. stlpci suboru

    25.1.2016 12:01 Ladislav
    Rekurzivne nahradenie/vymazanie znaku v 2. stlpci suboru
    Přečteno: 450×
    Dobry den, niesom velmi v konzole zbehly ale riesim nasledujuci problem. Mam textove subory v ktorych je rozny pocet stlpcov. Minimalny pocet je 2. Tieto subory su v roznych podadresaroch. Potrebujem aby sa v kazdom subore v 2. stlpci ak prvy znak je 0 tento znak vymazal. Moj pokus je takyto:
    #!/bin/bash
    
    for i in $(find . -name *.txt); do
      awk '{gsub("^0","",$2); print $1,$2}' $i
    done
    
    avsak tento skript vypise iba opravene stlpce ale nezapise zmeny do suboru. Viete ma nejako usmernit spravnym smerom ?

    Dakujem.

    Odpovědi

    25.1.2016 12:22 NN
    Rozbalit Rozbalit vše Re: Rekurzivne nahradenie/vymazanie znaku v 2. stlpci suboru
    #!/bin/bash
    
    for i in $(find . -name *.txt); do
        sed -ri 's/\ 0(.*)$/\ \1/g' $i
    done
    
    Urizne prvni nulu za mezerou z prava, asi by to slo i elegantneji. Doporucuji nejprve otestovat(bez -i).
    25.1.2016 12:33 Ladislav
    Rozbalit Rozbalit vše Re: Rekurzivne nahradenie/vymazanie znaku v 2. stlpci suboru
    Hmmm - no nevymaze to pociatocnu nulu z druheho stlpca :-( (skusal som bez -i)
    Jendа avatar 25.1.2016 18:13 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Rekurzivne nahradenie/vymazanie znaku v 2. stlpci suboru
    sed -r 's/^([^ ]+)( +)0(.*)$/\1\2\3/g'
    wamba avatar 25.1.2016 14:27 wamba | skóre: 38 | blog: wamba
    Rozbalit Rozbalit vše Re: Rekurzivne nahradenie/vymazanie znaku v 2. stlpci suboru
    čím jsou odděleny sloupce, mezery?

    třeba: find -name "*\.txt" |xargs perl -i -anE '$F[1] =~ s/^0//g;say "@F"'

    opět pro zkoušku lze vynechat -i
    This would have been so hard to fix when you don't know that there is in fact an easy fix.
    25.1.2016 14:43 Ladislav
    Rozbalit Rozbalit vše Re: Rekurzivne nahradenie/vymazanie znaku v 2. stlpci suboru
    Ano medzera. Tento skript funguje, akurat zmensuje medzery, co by asi vadit nemalo, ale to sa dozviem az ked budem tieto TXT subory importovat na dalsie spracovanie. Da sa aj bez toho zmensovania medzier ? Dakujem kazdopadne.
    wamba avatar 25.1.2016 15:32 wamba | skóre: 38 | blog: wamba
    Rozbalit Rozbalit vše Re: Rekurzivne nahradenie/vymazanie znaku v 2. stlpci suboru
    záleží jestli chcete ty mezery zachovat, pak třeba: find -name "*\.txt" |xargs perl -i -pE 's/^\s*\S+\s+\K0//;'.

    nebo jen zvětšit mezery: find -name "*\.txt" |xargs perl -i -anE '$"="\t";$F[1] =~ s/^0//g;say "@F"'
    This would have been so hard to fix when you don't know that there is in fact an easy fix.
    25.1.2016 18:22 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Rekurzivne nahradenie/vymazanie znaku v 2. stlpci suboru

    Tvůj pokus má jednu vadu: nezachovává sloupce následující po druhém sloupci.

    Tady je můj výstřel do tmy, který soubory už přímo edituje a zachovává všechny sloupce. Počítá s tabulátory jako oddělovači, ale klidně si tam lze dosadit místo \t mezery nebo skupiny znaků.

    find . -name '*.txt' -exec sed -ir \
      's/(^[\t]*[^\t]+[\t]+)0(.*$)/\1\2/' '{}' +
    
    Co když je v tom druhém sloupci pouze jedna samotná nula nebo více nul a nic nenulového za nimi? Pak by tam asi měla zůstat právě jedna nula, že ano. To bych udělal zhruba takto:
    find . -name '*.txt' -exec sed -ir \
      's/(^[\t]*[^\t]+[\t]+)0+(([^\t0]|0).*$)/\1\2/' '{}' +
    

    Tohle^^^ by mělo druhý sloupec nahradit takto:

    0 -> 0
    00 -> 0
    000 -> 0
    ...
    cosi -> cosi
    0cosi -> cosi
    00cosi -> cosi
    ...
    
    25.1.2016 18:25 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Rekurzivne nahradenie/vymazanie znaku v 2. stlpci suboru

    Aha. Teď v diskusi výše vidím, že oddělovače jsou mezery. Takže:

    find . -name '*.txt' -exec sed -ir \
      's/(^ *[^ ]+ +)0(.*$)/\1\2/' '{}' +
    find . -name '*.txt' -exec sed -ir \
      's/(^ *[^ ]+ +)0+(([^ 0]|0).*$)/\1\2/' '{}' +

    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.