The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"ограничение вывода построчно"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"ограничение вывода построчно"  
Сообщение от andreika (ok) on 09-Апр-09, 17:50 
есть файл такого содержания:
=============
MAC ff:ff:ff:ff:ff:ff
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
=============
соответственно - маки и соответствующие им ip.можно ли ограничить размер столбца (до (wc -l)/2, например)? как fold -w, только для столбцов а не для строк.. либо каким скриптом это можно сделать, чтобы в одну строку уложиться? :) спасибо.
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "ограничение вывода построчно"  
Сообщение от ДорогойДрук on 09-Апр-09, 18:34 
>[оверквотинг удален]
>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
>=============

Покажите, что должно получиться, из описания не совсем понятно.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "ограничение вывода построчно"  
Сообщение от andreika (ok) on 09-Апр-09, 19:31 
>[оверквотинг удален]
>>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


но это как-то уж больно длинно ))

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "ограничение вывода построчно"  
Сообщение от JohnProfic on 10-Апр-09, 01:25 
>[оверквотинг удален]
>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".

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "ограничение вывода построчно"  
Сообщение от Andrey Mitrofanov on 10-Апр-09, 09:55 
>>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 :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "ограничение вывода построчно"  
Сообщение от phpcoder email(??) on 10-Апр-09, 09:10 
cut -c ?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "ограничение вывода построчно"  
Сообщение от andreika (ok) on 10-Апр-09, 10:13 

большое спасибо, оба работают! выбрал вариант Джона :) он просто больше подходит ввиду его размеров - можно сразу уместить в конфиг nagios'а, не используя сторонних скриптов.

p.s. про cut -c не понял, не получилось.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру