Portál AbcLinuxu, 8. června 2025 22:50


Dotaz: Pár dotazů k Bashi

29.10.2010 13:19 Jarda
Pár dotazů k Bashi
Přečteno: 346×
Odpovědět | Admin
Ahoj,

potrerebuji rozlozit vetu na jednotlive slova a ty ulozit do pole. Napsal jsem tohle:
var="Ahoj svete jak se mas"
slovo=`expr match "$var" '\([a-zA-Z]*\)'` #*
echo "$slovo"
var=${var#*$slovo}   #odebere $slovo z $var
#*toto mi sice najde slovo="Ahoj", ale pokud bych to zavolal znovu, tak uz mi to slovo="svete" #nenajde, protoze je pred "svetem" carka, potrebuji aby mi to naslo vzdy prvni slovo ve vete at #je pred nim cokoliv.Muzu sice carky pred ni mazat, ale to mi prijde prasacke...

Dale bych se chtel zeptat, zda je nejaka rozumna cesta, jak ve vete ymenit vsechny velka pismena na mala?
var="AhoJ SveTe"
...
var="ahoj svete"

Nakonec bych se chtel zeptat jak odgzipovat neco nekam do slozky:
tar -xvzf $cesta $cesta_vznikleho_souboru  
nefunguje, prohledal jsem net i man , ale nic poradnzho jsem nenasel...Dik

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.10.2010 15:05 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Pár dotazů k Bashi
Odpovědět | | Sbalit | Link | Blokovat | Admin
read -a pole <<<"$var"
tr [A-Z] [a-z] <<<"$var"
If you hold a Unix shell up to your ear, you can you hear the C.
Jendа avatar 30.10.2010 16:40 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Pár dotazů k Bashi
tr [A-Z] [a-z] <<<"$var"
Hranaté závorky nejsou potřeba, tr expanduje samo od sebe a hranaté závorky bere jako normální znaky (zkus si echo [AHOJ] | tr [A-Z ]a-z).
29.10.2010 15:07 zulu
Rozbalit Rozbalit vše Re: Pár dotazů k Bashi
Odpovědět | | Sbalit | Link | Blokovat | Admin
veta="Ahoj, svete! Jak se mas?"
pole=(${veta//[^[:word:]]/ })
echo ${pole[0]} : ${pole[1]} : ${pole[2]}
Ahoj : svete : Jak
locase=`tr [:upper:] [:lower:]<<<$veta`
# nebo v bash 4: locase=${veta,,}
echo $locase
ahoj, svete! jak se mas?
tar xvzf $soubor -C $adresar
29.10.2010 15:08 NN
Rozbalit Rozbalit vše Re: Pár dotazů k Bashi
Odpovědět | | Sbalit | Link | Blokovat | Admin
V prvnim pripade bych pouzil sed, v druhem pripade extrahujes misto komprese a mas spatne poradi, takze (tar je rekurzivni automaticky..):
tar czf $cesta/$neco.tar.gz /neco
NN
29.10.2010 15:09 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Pár dotazů k Bashi
Odpovědět | | Sbalit | Link | Blokovat | Admin
precitat si man k tar, najst sekciu examples (cca 2. strana):
tar -xjf foo.tar.bz2 -C bar/
        extract bzipped foo.tar.bz2 after changing directory to bar
If you hold a Unix shell up to your ear, you can you hear the C.
29.10.2010 15:10 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Pár dotazů k Bashi
Podla -x predpokladam, ze "odgzipovat" znamena rozzipovat.
If you hold a Unix shell up to your ear, you can you hear the C.
29.10.2010 16:14 NN
Rozbalit Rozbalit vše Re: Pár dotazů k Bashi
Neumim cist.. :D

NN
29.10.2010 20:43 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Pár dotazů k Bashi
Hlavne pytajuci sa nevie pisat. "Odgzipovat" sa da da pochopit obomi smermi. Ked uz sa nieco pytam, tak pouzijem slovnik, aby mi rozumeli.
If you hold a Unix shell up to your ear, you can you hear the C.
30.10.2010 19:44 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Pár dotazů k Bashi
Odpovědět | | Sbalit | Link | Blokovat | Admin
potrerebuji rozlozit vetu na jednotlive slova a ty ulozit do pole.
pole=($veta)
je nejaka rozumna cesta, jak ve vete ymenit vsechny velka pismena na mala?
var=${var,,}
jak odgzipovat neco nekam do slozky
tar -C /moje/slozka -xvfz soubor.tgz

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.