Я хочу, чтобы получить список с этими полями в только команды:Добавить вычисляемый столбец в конце результата команды
IP[TAB]MAC[TAB]VENDOR[TAB]HOSTNAME
Это результат, который я хотел бы иметь:
192.168.1.1[TAB]54:a0:50:xx:xx:xx[TAB]ASUSTek COMPUTER INC.[TAB]Router
192.168.1.2[TAB]60:33:4b:xx:xx:xx[TAB]Apple, Inc.[TAB]iMac-John
192.168.1.52[TAB]08:ed:b9:xx:xx:xx[TAB]Apple, Inc.[TAB]iMac-Peter
192.168.1.26[TAB]c0:11:73:xx:xx:xx[TAB]Samsung Electronics Co.,Ltd[TAB]Erik's Android
я могу получить первые три колонки легко с помощью этой команды:
sudo arp-scan -l | tail -n +3 | head -n -3
Результат:
192.168.1.1[TAB]54:a0:50:xx:xx:xx[TAB]ASUSTek COMPUTER INC.
192.168.1.2[TAB]60:33:4b:xx:xx:xx[TAB]Apple, Inc.
192.168.1.52[TAB]08:ed:b9:xx:xx:xx[TAB]Apple, Inc.
192.168.1.26[TAB]c0:11:73:xx:xx:xx[TAB]Samsung Electronics Co.,Ltd
Проблема заключается в том, чтобы добавить 4-й столбец, я пытаюсь сделать это с awk
команды, но я получаю результат в новой строке вместо формате мне нравится.
sudo arp-scan -l | tail -n +3 | head -n -3 | awk -F '\t' '{ print $0 system("getent hosts " $1) }'
Неожиданный результат:
192.168.1.1[TAB]Router
192.168.1.1[TAB]54:a0:50:xx:xx:xx[TAB]ASUSTek COMPUTER INC.
192.168.1.2[TAB]iMac-John
192.168.1.2[TAB]60:33:4b:xx:xx:xx[TAB]Apple, Inc.
192.168.1.52[TAB]iMac-Peter
192.168.1.52[TAB]08:ed:b9:xx:xx:xx[TAB]Apple, Inc.
192.168.1.26[TAB]Erik's Android
192.168.1.26[TAB]c0:11:73:xx:xx:xx[TAB]Samsung Electronics Co.,Ltd
Любая помощь будет оценен по достоинству!
[править] Ваш вопрос, чтобы включить краткие, проверяемые вход образца (выход Sudo arp- scan -l) и ожидаемый результат. –
Предположительно, IP-адрес является общим ключом. Исследуйте команду 'join'. –