- ограничение вывода построчно, ДорогойДрук, 18:34 , 09-Апр-09 (1)
>[оверквотинг удален] >MAC 0:f:3d:86:49:b3 >MAC 8:0:27:9d:3c:97 >MAC 0:e0:7d:a3:95:2d >MAC ff:ff:ff:ff:ff:ff >IP 192.168.2.0 >IP 192.168.2.2 >IP 192.168.2.18 >IP 192.168.2.162 >IP 192.168.2.255 >============= Покажите, что должно получиться, из описания не совсем понятно.
- ограничение вывода построчно, andreika, 19:31 , 09-Апр-09 (2)
>[оверквотинг удален] >>MAC 0:e0:7d:a3:95:2d >>MAC ff:ff:ff:ff:ff:ff >>IP 192.168.2.0 >>IP 192.168.2.2 >>IP 192.168.2.18 >>IP 192.168.2.162 >>IP 192.168.2.255 >>============= > >Покажите, что должно получиться, из описания не совсем понятно. IP: 192.168.2.0 MAC: ff:ff:ff:ff:ff:ff IP: 192.168.2.2 MAC: 0:f:3d:86:49:b3 IP: 192.168.2.18 MAC: 8:0:27:9d:3c:97 IP: 192.168.2.162 MAC: 0:e0:7d:a3:95:2d IP: 192.168.2.255 MAC: ff:ff:ff:ff:ff:ff сделал вот таким скриптом: #!/bin/bash IP=$1 LIST1=$(snmpwalk -v 2c -O v -c public $IP .1.3.6.1.2.1.4.22.1 | grep -v INTEGER | sed -e "s/STRING: //g" | sed -e "s/IpAddress: //g") COUNTER=1 for iq in $LIST1; do array[$COUNTER]=$iq COUNTER=`expr $COUNTER + 1` done dev=$[${#array[*]}/2] for ((i=1; i<=$dev; i++)); do echo IP: ${array[$i+$dev]} MAC: ${array[$i]} done
но это как-то уж больно длинно ))
- ограничение вывода построчно, JohnProfic, 01:25 , 10-Апр-09 (3)
>[оверквотинг удален] >array[$COUNTER]=$iq >COUNTER=`expr $COUNTER + 1` >done >dev=$[${#array[*]}/2] >for ((i=1; i<=$dev; i++)); do >echo IP: ${array[$i+$dev]} MAC: ${array[$i]} >done > > >но это как-то уж больно длинно )) Для этого конкреного случая может подойти что-то типа: awk 'BEGIN { a=0; b=0 } /^MAC/ { arr[a++]=$0 } /^IP/ { print arr[b++] " " $0 }' file Работает в "GNU Awk 3.0.4".
- ограничение вывода построчно, Andrey Mitrofanov, 09:55 , 10-Апр-09 (5)
>>MAC ff:ff:ff:ff:ff:ff >>IP 192.168.2.0 >IP: 192.168.2.0 MAC: ff:ff:ff:ff:ff:ff Ещё и двоеточие добавлять?.. "Это волюнтаризЬм какой-то!"(с) >но это как-то уж больно длинно )) Работает? Не трогай... Врочем, вот я поупражнялся (да, на решение gawk-е короче, меньше процессов): $ cat ./dbl #!/bin/bash FILE=file.txt NN="$(wc -l <"$FILE")" NN=$((NN/2)) paste -d\ <( head -$NN "$FILE" ) <( tail -$NN "$FILE" ) |sed 's/[A-Z]\+/\0:/g' $ ./dbl MAC: ff:ff:ff:ff:ff:ff IP: 192.168.2.0 MAC: 0:f:3d:86:49:b3 IP: 192.168.2.2 MAC: 8:0:27:9d:3c:97 IP: 192.168.2.18 MAC: 0:e0:7d:a3:95:2d IP: 192.168.2.162 MAC: ff:ff:ff:ff:ff:ff IP: 192.168.2.255 $ _ GNU bash, GNU coreutils, GNU sed :)
- ограничение вывода построчно, phpcoder, 09:10 , 10-Апр-09 (4)
- ограничение вывода построчно, andreika, 10:13 , 10-Апр-09 (6)
большое спасибо, оба работают! выбрал вариант Джона :) он просто больше подходит ввиду его размеров - можно сразу уместить в конфиг nagios'а, не используя сторонних скриптов.p.s. про cut -c не понял, не получилось.
|