Strona 1 z 1

[bash] operacje na napisach

: 16 grudnia 2007, 21:20
autor: Chodak
Witam. Mam troche trywialne pytanie ale nie moglem znalesc rozwiazania. Czy w bashu da sie odwolac do okreslonego znaku w ciagu, tak jak np w C++ - zmienna[liczba]. Probowalem np tak:

Kod: Zaznacz cały

#!/bin/bash
slowo="tekst"
znak=${slowo[3]}
jednak to nie dziala..

Pozdrawiam
Chodak

: 16 grudnia 2007, 21:47
autor: salmon
raczej nie da(przynajmniej ja nic o tym nie wiem), ale taki awk na przykład może sprawdzać czy jakaś litera czy ciąg znaków znajduje się w słowie, zamienić podciąg na inny itp

: 16 grudnia 2007, 21:58
autor: Chodak
hmm... wkasciwie satysfakcjonowalo by mnie usuwanie znakow od lewej. np:

Kod: Zaznacz cały

zmienna="ala ma kaca"
i pozniej np. co 1sec zmienna ma wygladac tak:

Kod: Zaznacz cały

"la ma kaca"
"a ma kaca"
" ma kaca"
"ma kaca"
"a kaca"
" kaca"
"kaca"
"aca"
"ca"
"a"
""
jest jakis sposob?

Pozdrawiam
Chodak

: 16 grudnia 2007, 22:00
autor: Gość
Chodak pisze:Czy w bashu da sie odwolac do okreslonego znaku w ciagu
Da się bezproblemowo :

Kod: Zaznacz cały

Debian  [pts/4]  [21:59:48]  [ ~ ]
 >>  slowo="tekst"]


Pozdrawiam

: 16 grudnia 2007, 22:10
autor: Chodak
Super! Wlasnie o to mi chodzilo. Wielkie dzieki.

Pozdrawiam.
Chodak

: 16 grudnia 2007, 22:12
autor: salmon
Chodak pisze:jest jakis sposob?

Kod: Zaznacz cały

#!/bin/bash
tekst="Ala ma kota"
while [[ "$tekst" !=  "" ]]
do
    echo $tekst
    tekst=`echo $tekst | cut -c2-`
    sleep 1
done
Hagal pisze:Da się bezproblemowo :
Człowiek ciągle się uczy, dzięki :)