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 16:22 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    dnes 12:00 | Humor

    FlappyFavi, hra Flappy Bird v ikoně Favicon. Nefunguje na mobilech.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | IT novinky Ladislav Hagara | Komentářů: 0
    včera 03:44 | Komunita

    Všem na AbcLinuxu vše nejlepší k Valentýnu aneb Dni lásky ke svobodnému softwaru (I love Free Software Day, Mastodon, 𝕏).

    Ladislav Hagara | Komentářů: 25
    13.2. 19:22 | Komunita

    Vývojáři openSUSE Tumbleweed oznámili, že u nových instalací se ve výchozím stavu přechází z AppArmor na SELinux. Uživatelé, kteří chtějí zůstat na AppArmor si mohou AppArmor vybrat v instalátoru.

    Ladislav Hagara | Komentářů: 0
    13.2. 16:44 | Komunita

    Hector "marcan" Martin skončil jako vedoucí projektu Asahi Linux aneb Linux na Apple Siliconu. Projekt ale pokračuje dál.

    Ladislav Hagara | Komentářů: 49
    13.2. 16:33 | Nová verze

    PostgreSQL byl vydán ve verzích 17.3, 16.7, 15.11, 14.16 a 13.19. Řešena je zranitelnost CVE-2025-1094 s CVSS 8.1 a více než 70 chyb.

    Ladislav Hagara | Komentářů: 0
    13.2. 14:22 | Humor

    Dnes je Světový den rádia. Použili jste někdy GNU Radio?

    Ladislav Hagara | Komentářů: 11
    13.2. 12:33 | IT novinky

    Před 33 lety, ve čtvrtek 13. února 1992, se tehdejší Česká a Slovenská Federativní Republika oficiálně (a slavnostně) připojila k Internetu.

    Ladislav Hagara | Komentářů: 2
    12.2. 19:44 | Nová verze

    Byla vydána nová verze 9.10 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Dotaz: Jak v bashi převedu malá písmena na VELKÁ?

    David Watzke avatar 20.12.2005 16:02 David Watzke | skóre: 74 | blog: Blog... | Praha
    Jak v bashi převedu malá písmena na VELKÁ?
    Přečteno: 198×
    Jak v Bashi převedu malá písmena na VELKÁ? Díky.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon

    Odpovědi

    David Watzke avatar 20.12.2005 16:03 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Konkrétně bych chtěl z abc udělat [aA][bB][cC].
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    20.12.2005 16:13 Přemek Jordák | skóre: 12 | Beroun
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    $ echo "AbCDeFgh" |tr [:lower:] [:upper:]
    Blogy neprohlížím, nepíši a ani se jim valně nesměji
    20.12.2005 16:33 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Nehledáš spíš case-insensitive grep (-i) nebo sed ( /.../i )?
    David Watzke avatar 20.12.2005 19:23 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    To asi ne, protože bych to chtěl ... no, radši uvedu příklad:
    abc2cba převést na [aA][bB][cC]
    bcd2dcb převést na [bB][cC][dD]
    a to tak, že si pomocí cut -d2 -f1 vyříznu to před dvojkou a pak to nějak nacpu do [??][??][??]... jenže to bude asi dost kódu... Tedy pokud použiju tr, tak určitě.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    20.12.2005 20:11 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
      r=''
      while [ -n "$s" ]; do
        l="${s:0:1}"
        u=`echo "$l" | tr '[:lower:]' '[:upper:]'`
        r="${r}[${l}${u}]"
        s="${s:1}"
      done
    
    Ale, upřímně řečeno, v céčku to napíšete za třetinu času a poběží to o řád rychleji (spíš o několik řádů).
    David Watzke avatar 20.12.2005 20:25 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Wow. Je to tak hustý, že se v tom ani nevyznám. Nějak jsem z toho pochopil, že bych to měl uložit do scriptu a spustit to z parametrem třeba abc. Jenže to nic nevypíše.
    Ale, upřímně řečeno, v céčku to napíšete za třetinu času a poběží to o řád rychleji (spíš o několik řádů).
    No, to je možný, ale nenapíšu to v Bashi, natož v C. :-(
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    20.12.2005 20:53 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Napsat jen do souboru a spustit nestačí, musíš tomu předat vstupní hodnoty (s) a výstup lovit v r.
    [tsunami@vodik]$ s=ToJeAlEkRaViNa
    
    [tsunami@vodik]$   r=''
    
    [tsunami@vodik]$   while [ -n "$s" ]; do
    >     l="${s:0:1}"
    >     u=`echo "$l" | tr '[:lower:]' '[:upper:]'`
    >     r="${r}[${l}${u}]"
    >     s="${s:1}"
    >   done
    
    [tsunami@vodik]$ echo $r
    [TT][oO][JJ][eE][AA][lL][EE][kK][RR][aA][VV][iI][NN][aA]
    
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    David Watzke avatar 20.12.2005 20:54 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Aha, super.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    20.12.2005 20:12 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Vypadá to, že ten výsledek je regulární výraz k nějaké další operaci. Zkus napsat, co s tím řetězcem budeš dělat potom. Není vyloučeno, že obě části půjdou vyřešit dohromady nějakým trikem.
    David Watzke avatar 20.12.2005 20:26 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Týká se to mýho skriptu - NCoda.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    21.12.2005 17:03 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    V tom případě shopt -s nocaseglob.
    20.12.2005 16:09 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    man tr
    20.12.2005 16:47 pol
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    já si obšlehl skriptík, a teď ho vždycky jenom zavolám...


    #!/bin/bash
    for file in *
    do
    newfile=`echo "$file" | tr A-Z a-z`
    mv "$file" $newfile
    done

    David Watzke avatar 20.12.2005 21:15 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Dobře, mám tedy
    s=`echo $1 | cut -d2 -f1`
     while [ -n "$s" ]
      do
       l="${s:0:1}"
       u=`echo "$l" | tr '[:lower:]' '[:upper:]'`
       r="${r}[${l}${u}]"
       s="${s:1}"
      done
    echo *.${r}
    Chci to pak použít ve funkci:
    WL() {
     s=`echo $1 | cut -d2 -f1`
     while [ -n "$s" ]
      do
       l="${s:0:1}"
       u=`echo "$l" | tr '[:lower:]' '[:upper:]'`
       r="${r}[${l}${u}]"
       s="${s:1}"
      done
    echo *.${r}
    }
    
     WL
    a proměnná r je prázdná. Proč to nejde ve funkci? :-(
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    David Watzke avatar 20.12.2005 21:15 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Samozřejmě to spouštím s parametrem typu aaa2bbb.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    20.12.2005 21:19 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Je mi to skoro trapné, ale mě to funguje
    [tsunami@vodik]$ WL() {
    >  s=`echo $1 | cut -d2 -f1`
    >  r=''
    >  while [ -n "$s" ]
    >   do
    >    l="${s:0:1}"
    >    u=`echo "$l" | tr '[:lower:]' '[:upper:]'`
    >    r="${r}[${l}${u}]"
    >    s="${s:1}"
    >   done
    > echo *.${r}
    > }
    
    [21:17:12]-[~]-
    [tsunami@vodik]$ WL ahoj2magor
    *.[aA][hH][oO][jJ]
    
    Nezapomeň na to r='', to je tam docela potřeba.
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    David Watzke avatar 20.12.2005 21:21 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Aha, podcenil jsem to...
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    20.12.2005 21:17 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Jestli to WL na konci tvého příspěvku znamená spuštění funkce, tak je to jasné.

    Ty té funkci nepředáš parametry, ale uvnitř se na ně odvoláváš($1).
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    David Watzke avatar 20.12.2005 21:20 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Znamená, ale proč nepředám? Myslel jsem, že ta funkce si vezme $1 z shellu. :/ Jak ho přemluvím?
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    20.12.2005 21:27 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Že by zcela překvapivě 'WL "$1"'?
    David Watzke avatar 20.12.2005 21:33 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Jojo. :-( Snad jsem tady taky neudělal nějakou blbost (no, zřejmě jo)
    WL() {
     s=`echo $1 | cut -d2 -f1`
     r=''
     while [ -n "$s" ]
      do
       l="${s:0:1}"
       u=`echo "$l" | tr '[:lower:]' '[:upper:]'`
       r="${r}[${l}${u}]"
       s="${s:1}"
      done
    echo *.${r}
    }
    
    aac2wav() {
     for F in `WL $1`
      do
       faad -o "${F%%.*}.wav" "$F"
      done
    }
    Proč je ve funkci aac2wav zase prázdno?
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    20.12.2005 22:00 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Protože $1 ve funkci je parametr té funkce a ne celého skriptu.
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    David Watzke avatar 20.12.2005 22:04 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Je to ale v ``. Jak to tedy udělám?
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    20.12.2005 22:20 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Představujte si funkci jako samostatný skript, který máte jen shodou okolností napsán v témže souboru. Poziční parametry ve funkci expandují na parametry, se kterými je volána příslušná funkce. Takže v těle funkce WL expanduje $1 na první parametr funkce WL, v těle funkce aac2wav na první parametr funkce aac2wav a jinde na první parametr skriptu.
    20.12.2005 22:22 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Jinak bych asi použil 'find . -maxdepth 0 -type f -iname "*.$1"'
    20.12.2005 22:27 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    maxdepth 0 asi nebude pracovat, chtělo by to 1

    a taky bych se vyprdnul na ten for cyklus a použil u findu -exec
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    David Watzke avatar 20.12.2005 22:34 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Vyprdnul na for cyklus, jo... Tak teď už v tom mám totální guláš. :-( Jak bys to chtěl tedy udělat?
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    20.12.2005 22:39 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    neřeš, plácám blbosti

    akorát si dej bacha na mezery v názvech souboru

    Koukal jsem do toho tvého skriptu ncoda a všiml si, že používáš češtinu s diakritikou v kódování UTF-8, to nedělej. Když už chceš použít češtinu, tak bez háčků a čárek. Nebo to rovnou piš anglicky.
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    David Watzke avatar 20.12.2005 22:40 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Mezery jsou (AFAIK) zajištěný. Na tu diakritiku si dám pozor.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    20.12.2005 23:05 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak v bashi převedu malá písmena na VELKÁ?
    Jasně, 1, hloupý překlep…

    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.