Portál AbcLinuxu, 10. května 2025 09:25

Dotaz: shell: rozlozenie jedneho imputu na viacej hodnot

8.6.2006 14:21 sappa
shell: rozlozenie jedneho imputu na viacej hodnot
Přečteno: 80×
Odpovědět | Admin
zdravim vsetkych mam na vas otazocku potrebujem spravit script aby ked zadam ip tak kazda hodnota tej ipadresy bola ako samostatne premena ???

192.168.1.10 sa bude tvarit ako $prva $druha $tretia $stvrta

viem to spravit tak ze to budem pstupene zadavat ako samostatny imput ale chcem to sprvita jednym vrzom a nejak sa neviem stoho vysomarit

dakujem za kazdy kopanec :)

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

Odpovědi

8.6.2006 14:35 qk | skóre: 15 | blog: qk_develop
Rozbalit Rozbalit vše Re: shell: rozlozenie jedneho imputu na viacej hodnot
Odpovědět | | Sbalit | Link | Blokovat | Admin
No podle mne je idealni pro tohle prikaz read a nastaveni IFS na '.' (tecka).
Jakub Hájek avatar 8.6.2006 14:37 Jakub Hájek | skóre: 14 | blog: zamek | Praha
Rozbalit Rozbalit vše Re: shell: rozlozenie jedneho imputu na viacej hodnot
Odpovědět | | Sbalit | Link | Blokovat | Admin
#!/bin/sh
IP=$1
IP1=`echo $IP | cut -d. -f1`
IP2=`echo $IP | cut -d. -f2`
IP3=`echo $IP | cut -d. -f3`
IP4=`echo $IP | cut -d. -f4`
Teprve tehdy, až nebudeme mít co ztratit, budeme opravdu svobodní.
8.6.2006 16:35 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: shell: rozlozenie jedneho imputu na viacej hodnot
Odpovědět | | Sbalit | Link | Blokovat | Admin
Třeba v pythonu:
>>> ip = '192.168.1.10'
>>> ip.split('.')
['192', '168', '1', '10']
8.6.2006 19:22 GeorgeWH | skóre: 42
Rozbalit Rozbalit vše Re: shell: rozlozenie jedneho imputu na viacej hodnot
echo "111.222.333.444" | awk -F. '{print $1 " " $2 " " $3 " " $4}'
Josef Kufner avatar 8.6.2006 19:30 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: shell: rozlozenie jedneho imputu na viacej hodnot
Odpovědět | | Sbalit | Link | Blokovat | Admin
Použití pouze bashe:
old_ifs="IFS"
IFS='.'
ip="192.168.1.1"
arr=($ip)
echo ${arr[0]}, ${arr[1]}, ${arr[2]}, ${arr[3]}
IFS="old_ifs"
Hello world ! Segmentation fault (core dumped)
9.6.2006 08:45 sappa
Rozbalit Rozbalit vše Re: shell: rozlozenie jedneho imputu na viacej hodnot
dik presne toto som poteboval
9.6.2006 09:48 Roman Vasicek
Rozbalit Rozbalit vše Re: shell: rozlozenie jedneho imputu na viacej hodnot

Osobne bych se radeji obesel bez modifikace ISF ;-)

ip='192.168.1.1'
arr=(${ip//\./ })
echo ${arr[0]}, ${arr[1]}, ${arr[2]}, ${arr[3]}
9.6.2006 09:50 Roman Vasicek
Rozbalit Rozbalit vše Re: shell: rozlozenie jedneho imputu na viacej hodnot
Samozrejme ze tam melo byt IFS a ne ISF :-(
9.6.2006 09:17 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: shell: rozlozenie jedneho imputu na viacej hodnot
Odpovědět | | Sbalit | Link | Blokovat | Admin
$ IFS=.
$ read prvni druha treti ctvrta
125.35.68.49
$ echo "$prvni, $druha, $treti, $ctvrta na zahrade krtek vrta."
125, 35, 68, 49 na zahrade krtek vrta.
$
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.

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.