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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.