On Sun, 24 Apr 2005, Razvan Stoica wrote:

> Stie careva cum se face in BASH extragerea unei parti dintr-un string?

        Bash stie POSIX regular expressions. man bash, vezi array-ul 
BASH_REMATCH si operatorul =~ .

> Stringul este de forma: rtt min/avg/max/mdev = 
> 128.041/129.827/131.214/1.389 ms Ma intereseaza sa scot valoarea medie 
> (in cazul asta: 129.827). In Java se face folosind clasa 
> StringTokenizer. Exista ceva in genul asta si in BASH? Multumesc,

        Cred ca aproximativ in felul urmator:

string='rtt min/avg/max/mdev = 128.041/129.827/131.214/1.389 ms';
# ^^...pe care, ma rog, il poti prelua intr-un while read ceva sau 
# dintr-un fisier sau ce vrei tu.
if [[ "$string" =~ '([0-9.]+)\/([0-9.]+)\/([0-9.]+)\/([0-9.]+)' ]]; then
        echo AVG \= ${BASH_REMATCH[2]};
else
        echo No match.
fi;

        Bash kicks ass, eh?

-- 
Any views or opinions presented within this e-mail are solely those of
the author and do not necessarily represent those of any company, unless
otherwise expressly stated.

--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui