2015-04-10 2 views
0

Мне нужен способ удаления дубликатов из этого списка IP.Удалить дубликаты из вывода Arp-Scan Bash

arp-scan -I usb0 --file=ClassB.txt -N -r 1 --interval=50 | grep -E '([a-f0-9]{2}:){5}[a-f0-9]{2}' | awk '{print $1}' > IPList.txt 

Любые мысли или направления, в которые я должен войти? Мне нужно собрать список IP-адресов для другого сценария, который у меня есть.

Чин!

ответ

2

Использование sort -u для печати только уникальные строки:

arp-scan ... | awk '/([a-f0-9]{2}:){5}[a-f0-9]{2}/{print $1}' | sort -u > IPList.txt 

В качестве бонуса я удалил свой grep | awk трубу, так как AWK вполне способен согласовать образец сам по себе.

Вы даже можете сделать все это в AWK:

arp-scan ... | awk '/([a-f0-9]{2}:){5}[a-f0-9]{2}/&&!seen[$1]++{print $1}' > IPList.txt 

Это печатает только первое поле, когда он еще не был добавлен в массив seen как !seen[$1]++ будет только правда один раз.

+1

Спасибо! Я отметил это как ответ. Есть ли способ вывода результатов на экран по мере запуска сценария, а также сохранения результатов в файл? – Rob

+0

@Rob вы можете передать вывод на 'tee', чтобы сделать это –

Смежные вопросы