Страница 1 из 1

Аналог php explode

Добавлено: 2009-02-20 9:21:48
RusBiT
Есть строка типа 10.0.1.0,10.0.2.1,10.0.1.82
Как из нее создать массив? В php поможет explode

Re: Аналог php explode

Добавлено: 2009-02-20 10:50:27
zg
RusBiT писал(а):В php поможет explode
а тебе где надо?

Re: Аналог php explode

Добавлено: 2009-02-20 10:59:10
RusBiT
Мне в shell надо
есть список

Код: Выделить всё

шлюз1 подсеть1.1,подсеть1.2,подсеть1.3
...
шлюзn подсетьn.1,подсетьn.2,подсетьn.3
Cобственно требуется

Код: Выделить всё

route add -net подсеть1.1 шлюз1
route add -net подсеть1.2 шлюз1
route add -net подсеть1.2 шлюз1
На perl вроде труда не составит это сделать, но охото на shell

Re: Аналог php explode

Добавлено: 2009-02-20 11:10:19
zg
RusBiT писал(а):но охото на shell
на самом шеле гемморно - у него траблы с массивами, но если очень нада на шеле, можно и на шеле -)

Re: Аналог php explode

Добавлено: 2009-02-20 12:21:41
zg

Код: Выделить всё

zg# cat 1.sh
#!/bin/sh

FILES=$@
FILES=${FILES:=/dev/stdin}

cat $FILES | sed -e '/^#/d' -e '/^ *$/d' | while read gateway nets
do
  for net in `echo "$nets" | sed "s/,/ /g"`
  do
    echo route add -net $net $gateway
  done
done
zg#

Код: Выделить всё

zg# ./1.sh 1.txt 2.txt
route add -net подсеть2.1 шлюз2
route add -net подсеть2.2 шлюз2
route add -net подсеть2.3 шлюз2
route add -net подсетьn.1 шлюзn
route add -net подсетьn.2 шлюзn
route add -net подсетьn.3 шлюзn
route add -net подсеть8.1 шлюз8
route add -net подсеть8.2 шлюз8
route add -net подсеть8.3 шлюз8
route add -net подсеть8.3 шлюз8
route add -net подсеть8.3 шлюз8
zg# cat 1.txt 2.txt | ./1.sh
route add -net подсеть2.1 шлюз2
route add -net подсеть2.2 шлюз2
route add -net подсеть2.3 шлюз2
route add -net подсетьn.1 шлюзn
route add -net подсетьn.2 шлюзn
route add -net подсетьn.3 шлюзn
route add -net подсеть8.1 шлюз8
route add -net подсеть8.2 шлюз8
route add -net подсеть8.3 шлюз8
route add -net подсеть8.3 шлюз8
route add -net подсеть8.3 шлюз8
zg# cat 1.txt
#шлюз1 подсеть1.1,подсеть1.2,подсеть1.3
шлюз2 подсеть2.1,подсеть2.2,подсеть2.3
#шлюз1 подсеть1.1,подсеть1.2,подсеть1.3
шлюзn подсетьn.1,подсетьn.2,подсетьn.3


zg# cat 2.txt
шлюз8 подсеть8.1,подсеть8.2,подсеть8.3,подсеть8.3,подсеть8.3
zg#
ну как-то так -)

Re: Аналог php explode

Добавлено: 2009-02-20 18:18:05
RusBiT
Спасибо, вроде даж понял как это все работает :)

Re: Аналог php explode

Добавлено: 2009-02-23 15:44:44
Hazzard
RusBiT писал(а):Есть строка типа 10.0.1.0,10.0.2.1,10.0.1.82
Как из нее создать массив? В php поможет explode
интересно что помешало сделать собственно на пхп...

Re: Аналог php explode

Добавлено: 2009-02-23 15:47:16
zg
Hazzard писал(а):интересно что помешало сделать собственно на пхп...
необходимость ставить php