Как отформатировать файл arp -a?

Я пытаюсь отформатировать arp -a вывод по своему вкусу. Например, в данный момент он выводит:

MyRouter (172.16.3.x) at XX:XX:XX:XX:XX:XX [ether] on eth0
PC1 (172.16.3.x) at XX:XX:XX:XX:XX:XX [ether] on eth0
PC2 (172.16.3.x) at XX:XX:XX:XX:XX:XX [ether] on eth0

Но я хочу, чтобы он выводил что-то вроде:

MyRouter;172.16.3.x;XX:XX:XX:XX:XX:XX
PC1;172.16.3.x:XX:XX:XX:XX:XX:XX
PC2;172.16.3.x;XX:XX:XX:XX:XX:XX

Если я повторяю одну из строк с помощью команды BAD sed, Я создал, он будет форматировать вывод по своему вкусу, но я не могу использовать его в команде arp -a

Команда:

$ echo "MyRouter (172.16.3.x) at XX:XX:XX:XX:XX:XX [ether] on eth0" | sed 's/ (/;/g' | sed 's/) at /;/g' | sed 's/ \[.*//g'
MyRouter;172.16.3.x;XX:XX:XX:XX:XX:XX

Но как я могу отформатировать arp -a вывод как это?

1
задан 7 April 2016 в 19:07

1 ответ

С awk:

arp -a | awk -F'[ ()]' '{OFS=";"; print $1,$3,$6}'

Выход:

MyRouter;172.16.3.x;XX:XX:XX:XX:XX:XX PC1;172.16.3.x;XX:XX:XX:XX:XX:XX PC2;172.16.3.x;XX:XX:XX:XX:XX:XX

-F'[ ()]': устанавливает разделители полей в пробелы, ( и [ f5]

OFS=";": устанавливает выходной полевой разделитель на ;

1
ответ дан 23 May 2018 в 12:19

Другие вопросы по тегам:

Похожие вопросы: