Огромная обработка текстовых файлов в linux - PullRequest
0 голосов
/ 11 июня 2019

У меня есть такой огромный текстовый файл (не менее 1000000 строк):

1.1.1.1.10001  2.2.2.2.80
3.3.3.3.53  4.4.4.4.23456
5.5.5.5  6.6.6.6
7.7.7.7.45329  8.8.8.8.443

Какую лучшую и самую быструю логику вы сделаете, чтобы удалить строку с действительными IP-адресами в обоих столбцах? Для вышеприведенного ввода удаляемая строка -

5.5.5.5  6.6.6.6

1 Ответ

0 голосов
/ 11 июня 2019

Исходя из вашего приведенного примера, я предполагаю, что ваше определение «действительного IP-адреса» просто исключает назначение порта.Вместо более подробного вопроса, обратите внимание, что эта команда удалит 456.789.123.456, который не является действительным IPv4.

$ awk -v re='^([0-9]+\\.){3}[0-9]+$' '$1!~re && $2!~re' file
1.1.1.1.10001  2.2.2.2.80
3.3.3.3.53  4.4.4.4.23456
7.7.7.7.45329  8.8.8.8.443
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...