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:44 | IT novinky

    Microsoft představil Azure Linux 4.0 a Azure Container Linux. Na konferenci Open Source Summit North America 2026 organizované konsorciem Linux Foundation a sponzorované také Microsoftem. Azure Linux 4.0 vychází z Fedora Linuxu. Azure Container Linux je založen na projektu Flatcar. Azure Linux (GitHub, Wikipedie) byl původně znám jako CBL-Mariner.

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

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 165 (pdf).

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

    Byla vydána verze 9.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a informačním videu.

    Ladislav Hagara | Komentářů: 4
    včera 09:33 | IT novinky

    Firefox 151 podporuje Web Serial API. Pro komunikaci s různými mikrokontroléry připojenými přes USB nebo sériové porty už není nutné spouštět Chrome nebo na Chromiu postavené webové prohlížeče.

    Ladislav Hagara | Komentářů: 5
    včera 04:44 | Nová verze

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

    Ladislav Hagara | Komentářů: 0
    21.5. 21:33 | Bezpečnostní upozornění

    Ve FreeBSD byla nalezena a opravena zranitelnost FatGid aneb CVE-2026-45250. Jedná se o lokální eskalaci práv. Neprivilegovaný uživatel se může stát rootem.

    Ladislav Hagara | Komentářů: 0
    21.5. 14:33 | IT novinky

    Společnost Flipper Devices oznámila Flipper One. Zcela nový Flipper postavený od nuly. Jedná se o open-source linuxovou platformu založenou na čipu Rockchip RK3576. Hledají se dobrovolníci pro pomoc s dokončením vývoje (ovladače, testování, tvorba modulů).

    Ladislav Hagara | Komentářů: 2
    21.5. 14:00 | Nová verze

    Vývojáři Wine oznámili vydání verze 2.0 knihovny vkd3d pro překlad volání Direct3D na Vulkan. Přehled novinek na GitLabu.

    Ladislav Hagara | Komentářů: 0
    21.5. 11:33 | Nová verze

    Společnost Red Hat oznámila vydání Red Hat Enterprise Linuxu (RHEL) 10.2 a 9.8. Vedle nových vlastností a oprav chyb přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Vypíchnout lze CLI AI asistenta goose. Podrobnosti v poznámkách k vydání (10.2 a 9.8).

    Ladislav Hagara | Komentářů: 0
    21.5. 05:11 | Nová verze

    Organizace Apache Software Foundation (ASF) vydala verzi 30 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (12%)
     (8%)
     (2%)
     (14%)
     (31%)
     (4%)
     (7%)
     (3%)
     (16%)
     (26%)
    Celkem 1687 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    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: 355×
    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.