Как найти ASCII файлы и извлечь IP адреса в командной строке

1 find . -type f -exec grep -Iq . {} \; -exec grep -oE "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" {} /dev/null \;


Данная команда ищет все файлы в текущем каталоге и его подкаталогах, которые являются ASCII файлами. Затем она извлекает IP-адреса из этих файлов. Первая часть команды (before -exec) используется для поиска файлов, а вторая часть (after -exec) — для извлечения IP-адресов.

Чтобы найти только ASCII файлы, мы используем опцию -type f после команды find ., которая указывает, что нужно искать только обычные файлы, а не каталоги или специальные файлы.

Далее, мы используем параметр -exec grep -Iq . {} \;, который выполняет команду grep -Iq . {} для каждого найденного файла. Опция -I игнорирует двоичные файлы, а -q подавляет вывод результатов, оставляя только код завершения.

Во второй части команды, после -exec, мы используем команду grep -oE "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" {} /dev/null. Здесь мы используем grep с опциями -oE для извлечения только совпадающих IP-адресов из файлов.

На выходе после выполнения команды отображаются все найденные IP-адреса.

Альтернативой этой команды может быть использование команды awk или других инструментов для обработки текста. Однако, данная команда является универсальной и может быть полезна, если вам нужно найти IP-адреса в большом количестве файлов.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *