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 03:33 | IT novinky

    Google postupně zpřístupňuje českým uživatelům Režim AI (AI Mode), tj. nový režim vyhledávání založený na umělé inteligenci. Režim AI nabízí pokročilé uvažování, multimodalitu a možnost prozkoumat jakékoliv téma do hloubky pomocí dodatečných dotazů a užitečných odkazů na weby.

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

    Programovací jazyk Python byl vydán v nové major verzi 3.14.0. Podrobný přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 2
    včera 16:33 | IT novinky

    Bylo oznámeno, že Qualcomm kupuje Arduino. Současně byla představena nová deska Arduino UNO Q se dvěma čipy: MPU Qualcomm Dragonwing QRB2210, na kterém může běžet Linux, a MCU STM32U585 a vývojové prostředí Arduino App Lab.

    Ladislav Hagara | Komentářů: 1
    včera 15:55 | Nová verze

    Multiplatformní open source voxelový herní engine Luanti byl vydán ve verzi 5.14.0. Podrobný přehled novinek v changelogu. Původně se jedná o Minecraftem inspirovaný Minetest v říjnu loňského roku přejmenovaný na Luanti.

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

    Byla vydána nová stabilní verze 6.10 (YouTube) multiplatformního frameworku a GUI toolkitu Qt. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    6.10. 23:55 | Komunita

    Ubuntu 26.04 LTS bude (𝕏) Resolute Raccoon (rezolutní mýval).

    Ladislav Hagara | Komentářů: 3
    6.10. 21:00 | Nová verze

    Netwide Assembler (NASM) byl vydán v nové major verzi 3.00. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    6.10. 20:11 | Komunita

    Linuxová distribuce Frugalware (Wikipedie) ke konci roku 2025 oficiálně končí.

    Ladislav Hagara | Komentářů: 0
    6.10. 17:22 | Nová verze

    Byla vydána nová verze 3.0.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP bude brzy k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    6.10. 16:11 | IT novinky

    Americký výrobce čipů AMD uzavřel s americkou společností OpenAI smlouvu na několikaleté dodávky vyspělých mikročipů pro umělou inteligenci (AI). Součástí dohody je i předkupní právo OpenAI na přibližně desetiprocentní podíl v AMD.

    Ladislav Hagara | Komentářů: 1
    Jaké řešení používáte k vývoji / práci?
     (39%)
     (46%)
     (15%)
     (17%)
     (21%)
     (15%)
     (18%)
     (16%)
     (16%)
    Celkem 191 hlasů
     Komentářů: 12, poslední 4.10. 20:35
    Rozcestník

    Dotaz: Bash - smazání řádku, pokud k němu neexistuje podobný řádek

    27.3.2014 22:43 Jirka696
    Bash - smazání řádku, pokud k němu neexistuje podobný řádek
    Přečteno: 336×
    Zdravím vás,

    chtěl bych se zeptat, zda v bashi existuje nějaký příkaz, nejspíše sed, který mi smazal řádek pod podmínkou, že existuje ještě jeden určitý řádek.

    Uvedu na příkladu.
    ABCDE ---- 1 text
    BFLMA ---- 1 text
    XYZ   ---- 2 text
    ATD   ---- 1 text
    Chci, aby to vždy porovnalo 1 text a našlo k sobě "partnera" 2 text. Pokud by nenašlo, tak by to řádek smazalo.

    Výsledek by tedy vypadal takto:
    ABCDE ---- 1 text
    XYZ   ---- 2 text
    Děkuji za rady

    Odpovědi

    27.3.2014 23:33 mhepp
    Rozbalit Rozbalit vše Re: Bash - smazání řádku, pokud k němu neexistuje podobný řádek
    Hmmm... Asi nerozumim Tvemu zadani.

    Takze mam soubor, ktery prochazim. A pokud najdu vyskyt radku, ktery obsahuje "1 text", tak ho vypisu a vyhledam radek, ktery obsahuje "2 text", ten vpisu a koncim.

    Co mam delat v pripadech, ze "1 text" nenaleznu? Nebo pokud je "2 text" pred "1 text"?

    Jedno reseni by mohlo byt:

    grep -c 1 "1 text" soubor && grep -c 1 "2 text" soubor

    nebo

    awk 'BEGIN{nalezen=0} /1 text/{pom=$0; nalezen=1} /2 text/{if (nalezen==1) {print pom; print $0;}}' soubor

    Pokud Ti nevyhovuje toto reseni, specifikuj lepe zadani.
    28.3.2014 00:26 Jirka696
    Rozbalit Rozbalit vše Re: Bash - smazání řádku, pokud k němu neexistuje podobný řádek
    no to mi nějak nefugnuje zkusim to ještě upřesnit

    mam např
    Hráč Tereza - B vojak20
    Hráč Honza - A vojak
    Hráč Jirka - A vojak3
    Hráč Karel - A vojak2
    Hráč Jméno - A vojak7
    Hráč Jméno - B vojak3
    Hráč Franta - B vojak 
    Hráč Eliška - A vojak
    a já potřebuju vybrat jen ty hráče, kteří mají k sobě druhou dvojici dvojice je dána tím, že k "A vojak" patří "B vojak", tedy písmeny A a B a poté stejným stringem

    čili potřebuju udělat např to, že pro "A vojak", potřebuju najít "B vojak" , pokud nenajdu žádnou B dvojici, tak chci všechny řádky s "A vojak" smazat obdobně pro další, pro "A vojak3" chci najít "B vojak3"

    výstup tedy bude
    Hráč Honza - A vojak
    Hráč Jirka - A vojak3
    Hráč Jméno - B vojak3
    Hráč Franta - B vojak
    
    28.3.2014 01:19 mhepp
    Rozbalit Rozbalit vše Re: Bash - smazání řádku, pokud k němu neexistuje podobný řádek
    Nastinene reseni samozrejme nebude fungovat... Takhle je tu dobre doplnene zadani, tak se na to muzeme podivat.

    Tak si treba vybereme vsechny unikatni vojaky (jedno, jestli A nebo B) a podivame se, jestli existuje pro daneho vojaka A-B par. Ulozime si prvni vyskyt A vojaka i B vojaka, a pokud mame na konci oba dva, tak je vypiseme:
    cat soubor | awk '{print $NF} '  | sort | uniq | while read i; do
        awk 'BEGIN{na=0; nb=0} END{ if(na * nb == 1){print ra; print rb} /A '$i'$/{ if (na==0){ ra=$0; na=1} } /B '$i'$/{ if(nb==0){rb=$0; nb=1} }' soubor
    done
    
    Skript funguje pouze v pripade, ze na konci radku nejsou prebytecne mezery a zaroven, ze neni platny nasledujici pripad:
    ...
    Hrac K - A vojak
    ...
    Hrac L - B vojak
    ...
    Hrac M - A vojak
    ...
    Hrac N - B vojak
    ...
    
    Mysleno tim, ze existuje vice paru se stejnym vojakem.
    28.3.2014 01:57 mhepp
    Rozbalit Rozbalit vše Re: Bash - smazání řádku, pokud k němu neexistuje podobný řádek
    Příloha:
    A jeste jedno reseni, ciste pomoci awk...

    Skript v priloze pustime takhle:
    cat soubor | awk -f awk_reseni.awk
    
    Tento skript zvladne prebytecne mezery, ale zase bere jen prvni vyskyt paru.
    2.4.2014 23:22 mhepp | skóre: 22
    Rozbalit Rozbalit vše Re: Bash - smazání řádku, pokud k němu neexistuje podobný řádek
    Takové mám nejradši... Ani nenapíšou, jestli to funguje... :(

    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.