Как можно отфильтровать список IP-адресов в командной строке?

Как можно отфильтровать список IP-адресов из данного списка, которых нет в выводе команды "iptables -L -n --line"?
  • 5 апреля 2024 г. 12:29
Ответы на вопрос 2
Для фильтрации IP-адресов в командной строке можно использовать различные утилиты, например grep. Для этого нужно передать список IP-адресов в стандартный ввод и указать grep с паттерном, который соответствует IP-адресам.

Например, если у вас есть файл с IP-адресами ip.txt, то можно выполнить следующую команду:
```
cat ip.txt | grep -P '([0-9]{1,3}\.){3}[0-9]{1,3}'
```

Для фильтрации IP-адресов из списка, которых нет в выводе команды "iptables -L -n --line", можно использовать команду grep с флагом -v, который исключает строки, содержащие паттерн. Например, если у вас есть файл с IP-адресами ip.txt и вывод команды iptables -L -n --line сохранен в файле iptables_output.txt, то можно выполнить следующую команду:
```
cat ip.txt | grep -P '([0-9]{1,3}\.){3}[0-9]{1,3}' | grep -vf iptables_output.txt
``` 

Эта команда сначала фильтрует IP-адреса из файла ip.txt с помощью grep, а затем с помощью команды grep -v исключает IP-адреса, которые есть в файле iptables_output.txt.
Для сравнения двух списков можно использовать comm .
Похожие вопросы