LINUX.ORG.RU

Выдрать IP(sed)


0

0

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

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

★★★★

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

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

Deleted
()
Ответ на: комментарий от Deleted

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

Deleted
()
Ответ на: комментарий от Deleted

#! /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 ★★★★★
()
Ответ на: комментарий от Deleted

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

Deleted
()
Ответ на: комментарий от Deleted

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

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

sdio ★★★★★
()
Ответ на: комментарий от Deleted

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

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

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