Strona 1 z 1

[solved][bash]Wyciąganie ciągu z ciągu znaków, który zawiera separatory

: 29 sty 2010, 22:48
autor: Scofield1
Witam
męczę się nad programem (i nie mogę go zrealizować), który wyciągnie określone ciągi znaków i przypisze je do tablicy z ogólnego stringa, który zawiera odpowiednie separatory. Np. mam stringa w tej postaci:

Kod: Zaznacz cały

string1|string2|string3|string4|string5
gdzie separatorem jest: "|" i chciałbym aby w tablicy np. nowa[] były określone ciągi, w tym przypadku:
nowa[0] == string1
nowa[1] == string2
nowa[2] == string3
nowa[3] == string4
nowa[4] == string5

jest to możliwe do wykonania? Jeśli tak to prosiłbym o mały przykładzik. Próbowałem coś z tego tematu wyciągnąć ale nic nie wychodzi - viewtopic.php?t=109509

Odp: [bash]Wyciąganie ciągu z ciągu znaków, który zawiera separatory

: 30 sty 2010, 00:59
autor: beluosus

Kod: Zaznacz cały

#!/bin/bash

s="string1|string2|string3|string4|string5"
j=0
IFS="|"
for i in $s
do
    tablica[j]=$i
    echo "tablica[$j] == ${tablica[$j]}"
    let j++
done
PS
Jeśli chcesz jednokrotnie odczytać n-ty element to nie trzeba dzielić na tablicę, wystarczy:

Kod: Zaznacz cały

echo $s | cut -f2 -d'|'
# lub:
echo $s | awk -F'|' '{print $2}'

Odp: [bash]Wyciąganie ciągu z ciągu znaków, który zawiera separatory

: 30 sty 2010, 11:08
autor: Scofield1
Dzięki wielkie :-) właśnie dokładnie tego potrzebowałem.