LINUX.ORG.RU

Выдрать IP(sed)


0

0

Господа!
надо выдрать из ifconfig eth0 айпи адрес.
делаю так:
ifconfig eth0 | grep "inet addr" | sed -e 's/[a-zA-Z:]//g;s/ *//;s/ .*$//'

можно это же сделать короче?

★★★★

Re: Выдрать IP(sed)

ifconfig eth0 | grep "inet addr" | cut -d : -f 2 | cut -d\ -f 1

Регэкспы больше нагружают машину :)

Deleted ()
Ответ на: Re: Выдрать IP(sed) от Deleted

Re: Выдрать IP(sed)

ifconfig eth0 | grep "inet addr" | cut -d : -f 2 | cut -d\  -f 1
                                                          ^^
2 пробела должно быть, один съелся в предыдущем посте.

Deleted ()
Ответ на: Re: Выдрать IP(sed) от Deleted

Re: Выдрать IP(sed)

Не спорю, но если их (cut) два + grep ?

sdio ★★★★★ ()
Ответ на: Re: Выдрать IP(sed) от Deleted

Re: Выдрать IP(sed)

#! /bin/sh

for i in `seq 1 1000`; do
  ip=`/sbin/ifconfig eth0 | awk -F: '/inet addr/ {split($2, a, " "); print a[1]}'`
done

real    0m6.300s
user    0m3.300s
sys     0m6.030s
--------------------------------------------------------------------


for i in `seq 1 1000`; do
  ip=`/sbin/ifconfig eth0 | grep "inet addr" | cut -d : -f 2 | cut -d\  -f 1`
done

real    0m9.819s
user    0m5.230s
sys     0m10.650s

sdio ★★★★★ ()
Ответ на: Re: Выдрать IP(sed) от Deleted

Re: Выдрать IP(sed)

Мдя... замерил я...
Вариант sdio - самый быстрый.
Вариант с sed на почти на 20% быстрее моего.
Я предложил самый тормозной вариант :)))
Век живи, век учись, называется...

Deleted ()
Ответ на: Re: Выдрать IP(sed) от Deleted

Re: Выдрать IP(sed)

Для шел-скриптов fork есть фактор их быстродействия.

Пример: переписал скрипт один к одному с csh на perl -- шел-скрипт исполнялся 52мин, а перл-скрипт 1.8сек в тех же условиях

sdio ★★★★★ ()
Ответ на: Re: Выдрать IP(sed) от Deleted

Re: Выдрать IP(sed)

Так еще быстрее и как просил автор вопроса с исп. sed

ifconfig eth0 | sed -n '2s/\(^.*r:\)\|\(B.*$\)//g; 2p'

sdio ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.