The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
ограничение вывода построчно, !*! andreika, 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, только для столбцов а не для строк.. либо каким скриптом это можно сделать, чтобы в одну строку уложиться? :) спасибо.
  • ограничение вывода построчно, !*! ДорогойДрук, 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 не понял, не получилось.




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

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