Я пытаюсь отфильтровать MAC-адрес, IP-адрес и имя хоста удаленной машины из 100 машин. Первоначально я собираю информацию, используя приведенную ниже команду.
$for i in `cat IP`;do in ssh root@$IP "ifconfig eth0 && hostname " ;done
eth0 Link encap:Ethernet HWaddr 00:MN:77:TR:XX:ZZ
inet addr:192.168.122.25 Bcast:192.168.122.255
Mask:255.255.224.0
test.com-112304
eth0 Link encap:Ethernet HWaddr 00:TT:77:MM:XX:YY
inet addr:192.168.122.22 Bcast:192.168.122.255
Mask:255.255.224.0
test.com-11035
Первоначально перенаправление вывода в один файл. из их мне нужно обработать вывод, который приходит в вышеуказанном формате.
Я могу печатать IP и mac построчно следующим образом
$cat input | awk '/HWaddr/{printf $NF;printf " ";getline;print $2;}' | cut -c1-18,24-
00:MN:77:TR:XX:ZZ 192.168.122.25
00:TT:77:MM:XX:YY 192.168.122.22
На самом деле я хочу включить имя хоста вместе с выводом следующим образом
00:MN:77:TR:XX:ZZ 192.168.122.25 test.com-112304
00:TT:77:MM:XX:YY 192.168.122.22 test.com-11035
test.com будет общим именем для всех имен хостов. Я попытался перенаправить оба вывода в две переменные и вызвал следующим образом, но не повезло.
a=`cat input | awk '/HWaddr/{printf $NF;printf " ";getline;print $2;}' | cut -c1-18,24-`
b=`grep test.com input`
echo $a $b | xargs -n2
Пожалуйста, отбросьте взгляды