Mam plik jednostki.txt
Kod: Zaznacz cały
c=1 c=2 b=r h=j g=3 g=4
wybieranie zakresu za pomocą had i tail nie pójdzie bo długość tego pliku może się zmienić.
Wielkie dzięki za zainteresowanie
Kod: Zaznacz cały
c=1 c=2 b=r h=j g=3 g=4
Kod: Zaznacz cały
#!/bin/bash
. jednostki.txt
echo $b
Kod: Zaznacz cały
c_1
c_2
g_1
g_2
Kod: Zaznacz cały
#!/bin/bash -x
#pierwsze c
c_1=`grep "c=" jednostki.txt|head -n1|cut -c3-`
echo $c_1
Kod: Zaznacz cały
#!/bin/bash
# zerujemy tablicę, w której będziemy przechowywać nazwy zmiennych
unset arrays
is_new_array(){
# sprawdza, czy nazwa już istnieje w tablicy
for v in ${arrays[*]} ; do
[ $v == $1 ] && return 1
done
return 0
}
for p in $(cat ~/jednostki.txt) ; do
name=$(echo $p | cut -d'=' -f1)
value=$(echo $p | cut -d'=' -f2)
# tworzona jest tablica o nazwie $name i wartości $value
# index tablicy jest automatycznie powiększany
eval "${name}[\${#${name}[*]}]=$value"
# jeśli nazwa występuje pierwszy raz, dodawana jest do indeksu tablic
is_new_array $name && arrays[${#arrays[*]}]=$name
done
echo test: jakie zmienne zostały wczytane:
for v in ${arrays[*]} ; do
echo tablica $v
done
echo test: jakie wartości przechowują zmienne:
for v in ${arrays[*]} ; do
echo -n tablica $v :
for i in $(eval "echo \${$v[*]}") ; do
echo -n $i,
done
echo
done
# do poczytania
# http://www.linuxjournal.com/content/bash-arrays
Kod: Zaznacz cały
test: jakie zmienne zostały wczytane:
tablica c
tablica b
tablica h
tablica g
test: jakie wartości przechowują zmienne:
tablica c :1,2,
tablica b :r,
tablica h :j,
tablica g :3,4,
Kod: Zaznacz cały
tr -s "[ ]" "[ ]"
tr "[ ]" "_"
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 17 gości