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 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
    dnes 20:11 | Komunita

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

    Ladislav Hagara | Komentářů: 0
    dnes 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
    dnes 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
    dnes 12:22 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 20:00 | Komunita

    Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2025.

    Ladislav Hagara | Komentářů: 0
    4.10. 15:22 | IT novinky

    Na konferenci LinuxDays 2025 byl oficiálně představen nový router Turris Omnia NG.

    Ladislav Hagara | Komentářů: 34
    4.10. 05:22 | Komunita

    Přímý přenos (YouTube) z konference LinuxDays 2025, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.

    Ladislav Hagara | Komentářů: 16
    3.10. 22:44 | IT novinky

    V únoru loňského roku Úřad pro ochranu osobních údajů pravomocně uložil společnosti Avast Software pokutu 351 mil. Kč za porušení GDPR. Městský soud v Praze tuto pokutu na úterním jednání zrušil. Potvrdil ale, že společnost Avast porušila zákon, když skrze svůj zdarma dostupný antivirový program sledovala, které weby jeho uživatelé navštěvují, a tyto informace předávala dceřiné společnosti Jumpshot. Úřad pro ochranu osobních údajů

    … více »
    Ladislav Hagara | Komentářů: 9
    3.10. 19:00 | Nová verze

    Google Chrome 141 byl prohlášen za stabilní. Nejnovější stabilní verze 141.0.7390.54 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 21 bezpečnostních chyb. Za nejvážnější z nich (Heap buffer overflow in WebGPU) bylo vyplaceno 25 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.

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

    Dotaz: BASH - Odstranění znaků v řetězci

    7.3.2013 14:13 kluk
    BASH - Odstranění znaků v řetězci
    Přečteno: 1221×
    Ahoj, nejsem programátor ale nutně potřebuji opravit jeden script, poradí prosím někdo?

    Co potřebuji,
    1 pokud je v proměnné AAA první znak "S" tak ho potřebuji smazat a nastavit proměnnou S="true"
    2 pokud je v proměnné AAA poslední znak "E" tak ho potřebuji smazat  a nastavit proměnnou E="true"
    
    if [ "???" = "S" ]; then
     S="true";
     delete znak S;
    fi
    
    if [ "???" = "E" ]; then
     E="true"
     delete znak E;
    fi

    Řešení dotazu:


    Odpovědi

    7.3.2013 14:22 potato
    Rozbalit Rozbalit vše Re: BASH - Odstranění znaků v řetězci
    ??? je "${proměnná:0:1}"

    delete znak je proměnná="${proměnná:1}"
    7.3.2013 14:25 kluk
    Rozbalit Rozbalit vše Re: BASH - Odstranění znaků v řetězci
    Díky a ten poslední "E" ? pokud možno bez cyklu :( Děkuji
    7.3.2013 14:35 potato
    Rozbalit Rozbalit vše Re: BASH - Odstranění znaků v řetězci
    proměnná=${proměnná:0:${#proměnná}-1}

    to odstraňování by možná bylo přehlednější pomocí expansních operátorů % a #, ale nezaškodí procvičit si občas klasickou práci s řetězci...
    7.3.2013 14:50 kluk
    Rozbalit Rozbalit vše Re: BASH - Odstranění znaků v řetězci
    Díky moc, jak se dostanu k serveru tak to hned vyzkouším...
    7.3.2013 15:39 kluk
    Rozbalit Rozbalit vše Re: BASH - Odstranění znaků v řetězci
    Tak vše funguje akorát nemám tu podmínku který zjistí existenci toho posledního znaku, můžu požádat ještě o ten zápis? Díky
    7.3.2013 15:51 potato
    Rozbalit Rozbalit vše Re: BASH - Odstranění znaků v řetězci
    ${proměnná:${#proměnná}-1}
    7.3.2013 15:52 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: BASH - Odstranění znaků v řetězci
    if [ "${AAA#${AAA%?}}" = "E" ]; then 
      E="true"; 
    fi
    
    Výše uvedené
    if [ "${AAA:0:${#AAA}-1}" = "E" ]; then 
      E="true"; 
    fi
    
    není vhodné, může-li být AAA prázdný řetězec tedy AAA=''
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    7.3.2013 20:57 potato
    Rozbalit Rozbalit vše Re: BASH - Odstranění znaků v řetězci
    Pravdu díš, nechal jsem se unést...
    7.3.2013 16:11 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: BASH - Odstranění znaků v řetězci
    #!/bin/bash
    
    #1st input argument
    AAA="$1"
    
    S='false'
    E='false'
    
    if [ "${AAA:0:1}" = "S" ]; then
      S="true";
      AAA="${AAA:1}"
    fi
    if [ "${AAA#${AAA%?}}" = "E" ]; then
      E="true";
      AAA="${AAA%?}"
    fi
    
    echo "E = '$E'"
    echo "S = '$S'"
    echo "AAA = '$AAA'"
    
    exit 0
    
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    8.3.2013 09:31 kei.101
    Rozbalit Rozbalit vše Re: BASH - Odstranění znaků v řetězci
    
    S= E=
    
    TEST="${AAA#S}"
    [ "$TEST" = "$AAA" ] || S="true"
    AAA="$TEST"
    
    TEST="${AAA%E}"
    [ "$TEST" = "$AAA" ] || E="true"
    AAA="$TEST"
    
    8.3.2013 09:52 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: BASH - Odstranění znaků v řetězci
    if [[ $AAA = S* ]]; then
      S=true
      AAA="${AAA#S}"
    fi
    
    if [[ $AAA = *E ]]; then
      E=true
      AAA="${AAA%E}"
    fi
    If you hold a Unix shell up to your ear, you can you hear the C.

    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.