Portál AbcLinuxu, 12. května 2025 06:40

Dotaz: bash - rozdelit stlpce do niekolkych premennych

11.2.2011 10:05 polymorf | skóre: 14 | blog: tar_zxpf
bash - rozdelit stlpce do niekolkych premennych
Přečteno: 177×
Odpovědět | Admin

Mam takyto riadok:

2011/02/11 09:00 LZIB 110900Z VRB02KT 2700 -RA BR SCT007 BKN044 OVC048 00/M01 Q1015 88710795 NOSIG

Potrbujem ho rozdelit na polozky v bashi, robim to takto:

P1=`echo $RIADOK | awk '{ print $1 }'`
P2=`echo $RIADOK | awk '{ print $2 }'`
P3=`echo $RIADOK | awk '{ print $3 }'`
P4=`echo $RIADOK | awk '{ print $4 }'`
P5=`echo $RIADOK | awk '{ print $5 }'`
P6=`echo $RIADOK | awk '{ print $6 }'`
P7=`echo $RIADOK | awk '{ print $7 }'`
P8=`echo $RIADOK | awk '{ print $8 }'`
P9=`echo $RIADOK | awk '{ print $9 }'`

Funguje to, ale neda sa to urobit nejak krajsie?


Řešení dotazu:


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

Odpovědi

11.2.2011 10:10 polymorf | skóre: 14 | blog: tar_zxpf
Rozbalit Rozbalit vše Re: bash - rozdelit stlpce do niekolkych premennych
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak nic, uz som na to prisiel:

IFS=' ' read -ra POLE <<< "$RIADOK"

a polozky su ${POLE[1]}, ${POLE[2]}, ...
11.2.2011 10:14 polymorf | skóre: 14 | blog: tar_zxpf
Rozbalit Rozbalit vše Re: bash - rozdelit stlpce do niekolkych premennych
Alebo este lepsie:

IFS=' ' read DATUM CAS ZVYSOK <<< "$RIADOK"

polozky su $DATUM $CAS ...
14.2.2011 13:46 NeoV | skóre: 23
Rozbalit Rozbalit vše Re: bash - rozdelit stlpce do niekolkych premennych
A nie je to jednoduchsie takto? :
$ RADEK='2011/02/11 09:00 LZIB 110900Z VRB02KT 2700 -RA BR SCT007 BKN044 OVC048 00/M01 Q1015 88710795 NOSIG'
$ RA=($RADEK)
$ echo ${RA[2]}
LZIB
$ 
11.2.2011 10:21 marek
Rozbalit Rozbalit vše Re: bash - rozdelit stlpce do niekolkych premennych
Odpovědět | | Sbalit | Link | Blokovat | Admin

Dobry den.

osobne casto pouzivam konstrukci:

 
regexp='([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+)'; if [[ "a b c d e f" =~ $regexp ]] ; then echo "+++${BASH_REMATCH[1]}+++${BASH_REMATCH[2]}+++${BASH_REMATCH[3]}+++${BASH_REMATCH[4]}+++${BASH_REMATCH[5]}+++"; fi

Marek

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.