исключить результат данных, если первое значение меньше 10000 - PullRequest
0 голосов
/ 07 ноября 2019

Я извлекаю данные из списка IP-адресов Penalty Box таким образом

grep "" pbdb.black.db | awk '{print $4" "$5}'  | sort -nr

он возвращает такой список

38692 193.111.77.250
36212 193.111.77.231
34192 193.111.77.223
27882 193.111.77.207
21202 193.111.77.122
16000 193.111.78.245
15202 45.91.148.61
15202 45.91.148.61
14340 193.111.78.235
11370 45.91.148.46
10350 193.111.77.85
8487 113.111.48.60
8487 113.111.48.60
7903 193.32.160.152
7458 193.32.160.151
7270 193.32.160.150
6800 193.32.160.149
6202 113.111.55.21   
...
... other data
...
6 118.161.142.167
6 118.161.142.167
2 94.103.64.12
2 94.103.64.12
2 78.188.155.79
2 78.188.155.79
2 196.252.52.24
2 196.252.52.24
2 119.153.102.248
2 119.153.102.248

Что я должен сделать, чтобы исключить из данных результатовгде первое значение (перед IP-адресом) меньше 10000, чтобы получить этот результат?

38692 193.111.77.250
36212 193.111.77.231
34192 193.111.77.223
27882 193.111.77.207
21202 193.111.77.122
16000 193.111.78.245
15202 45.91.148.61
15202 45.91.148.61
14340 193.111.78.235
11370 45.91.148.46
10350 193.111.77.85

Ответы [ 2 ]

2 голосов
/ 07 ноября 2019

Видя, что ваш вывод выглядит так, как будто вам нужно больше 10000 значений.

 awk '$1>9999' Input_file

ИЛИ

your_command |  awk '$1>9999'
1 голос
/ 07 ноября 2019

Особый случай

После sort -rn вы можете использовать sed следующим образом:

 ... | sort -rn | sed '/^[0-9]\{1,4\} /,$d'

Это приведет к удалению строк из первой найденной строки с менее чем 5 цифрами и пробелом, до конца ввода.

Более серьезно:

Чтение вашего поста. Я предложу это:

grep "RE" filename | awk '{if ($4 >= 10000) print $4,$5}' | sort -rn

Или даже делать / RE / в awk вместо grep:

awk '/RE/{if ($4 >= 10000) print $4,$5}' filename | sort -rn
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...