LINUX.ORG.RU

Поиск и переадресация строки данных в файл...


0

0

Выкопал прогу по учёту техники:
http://checkcfg.narod.ru/index.htm
теперь вот хотелось бы скриптик для линуха написать...... что б нужные данные из файлов и выводимой информации переадресовывать в файл, но не знаю как....
Для старта, хотябы МАС адрес вытащить..... то, что из одной строки состоит вытаскиваю просто:
...
HDAMEDIA=$(cat /proc/ide/ide0/hda/media)
if [ "$HDAMEDIA" = "disk" ]; then
echo "Drive_3=C:\ Hard Disk" >> 555.txt
else
echo "Drive_3=C:\ CDROM"
>> 555.txt
fi
...
или
...
STR=$(uname -a)
echo System=$STR >> 555.txt
...
Вот из такого барохла (команда ifconfig)
eth0 Link encap:Ethernet HWaddr 00:30:84:0C:06:A6 
inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7599 errors:0 dropped:0 overruns:0 frame:0
TX packets:1636 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100 
RX bytes:1043640 (1019.1 Kb) TX bytes:311424 (304.1 Kb)
Interrupt:11 Base address:0x2000

Т.е. для интерфейса eth0 надо выдернуть данные: 00:30:84:0C:06:A6
как вот, умудриться при помощи BASH и стандартных команд (чтоб не надо было дополнительные фалы вешать, которые бы занимались этим поиском и извлечением) реализовать???
anonymous

sasha@as255:~$ /sbin/ifconfig | grep eth0 | awk '{ print $5 }'
00:00:F8:22:C3:2B
sasha@as255:~$
так сойдет ?

sasha999 ★★★★
()

СПАСИБО!
Прёт, и ещё как, осталось только разобраться, что откуда берётся...... да в общем то уже разобрался..... но скорей всего это не последний мой вопрос..... 

anonymous
()

Я немного обшибся, из этой строчки ещё двоеточие выбросить надо умудриться.....

anonymous
()

/sbin/ifconfig | grep eth0 | awk '{ print $5 }' | sed s/://g
не покатит чтоли?

lg ★★
()

Ещё раз огромное спасибо. ну, по моему теперь почти, всё. Теперь знаю к чему маны читать.

anonymous
()

только grep-ать лучше HWaddr, на случай, если больше одной сетевухи

ananas ★★★★★
()

Где можно про S.M.A.R.T. почитать, к линуху, а то данные в /proc/ide/... лежат, а как их преобразовать в нужную игформацию для sklad_2.exe????

anonymous
()

Остановился сейчас на том, что не могу взять N символов от определённого символа, т.е. если есть 208.125, то надо взять три символа влево от точки. Т.е. получить значение равным 208, и чтобы не бралась эта самая точка. Хотелось бы реализовать это стандартными средствами Linux.

anonymous
()

echo "208.125" | head -c 3
(echo -n "208.125"; echo "/ 1") | bc

lg ★★
()

ИМХО перл бы тут больше помог.

Dead ★★★★
()

Почти тоже самое:
echo -e "208.125" | awk -F. '{print $1}'
где вместо точки в качестве разделителя может быть любой символ (пробел - по умолчанию)

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

IFS=.; set 208.125; set $1; echo $1 

и никаких внешних программ.

vnp
()

на перл времени пока нет, я же админ, а не программер, но такими темпами, благодаря вам скоро стану кодером.... Спасибо парни, но на этом проэкт не останавливается.....

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