Передать вывод cat в скрипт node

Просто укажите, что вы не допускаете 0s на конце в вашем regex:

$ grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[1-9][0-9]*' file 
129.130.100.100
1.160.118.30
91.121.120.228
62.210.111.59
52.90.253.169

Хитрость заключается в \.[1-9][0-9]*, что означает соответствие . , затем любое число больше 0 один раз (вы не можете иметь IP, заканчивающиеся на 019 или подобные числа) и затем 0 или более чисел от 0 до 9.

Я бы также использовал grep -E для упрощения синтаксиса:

grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[1-9][0-9]*' file 

Или, еще проще:

grep -Eo '([0-9]{1,3}\.){3}[1-9]\d*' file 

И, если ваш grep поддерживает это, grep -P для дальнейшего упрощения:

grep -Po '(\d{1,3}\.){3}[1-9]\d*' file 
2
07.12.2015, 14:02
0 ответов

Теги

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