LINUX.ORG.RU

Bash grep и регулярные выражение

 


1

1

Имеются список ип адресов в таком формате

10.232.187.4    8c16.45ff.092c          Feb 28 2019 08:31 AM    Automatic  Active     
10.232.187.5    8c16.45ff.08a8          Feb 28 2019 08:47 AM    Automatic  Active     
10.232.187.6    8c16.45ff.06fc          Feb 28 2019 02:34 PM    Automatic  Active     
10.232.187.7    4ced.fb46.253f          Feb 28 2019 01:38 PM    Automatic  Active     
10.232.187.8    fcaa.1458.afe9          Feb 28 2019 07:56 AM    Automatic  Active     
10.232.187.9    4ced.fbc0.9578          Feb 28 2019 07:56 AM    Automatic  Active     
10.232.187.10   5404.a6cb.db6e          Feb 28 2019 08:56 AM    Automatic  Active     
10.232.187.11   fcaa.1484.bf49          Feb 28 2019 04:59 PM    Automatic  Active     
10.232.187.12   94de.8010.ac26          Feb 28 2019 12:06 PM    Automatic  Active     
10.232.187.14   8c16.45ff.0b7d          Feb 28 2019 08:31 AM    Automatic  Active     
10.232.187.15   b06e.bf2f.5dc0          Feb 28 2019 09:00 AM    Automatic  Active     
10.232.187.16   5046.5da1.0838          Feb 28 2019 08:25 AM    Automatic  Active     
10.232.187.69   5410.ecaa.390e          Feb 28 2019 01:37 PM    Automatic  Active     
10.232.187.70   5410.ecaa.617e          Feb 28 2019 01:37 PM    Automatic  Active     
10.232.187.71   5410.ecfe.896d          Feb 28 2019 01:37 PM    Automatic  Active     
10.232.187.72   5410.ecfe.e6ca          Feb 28 2019 01:37 PM    Automatic  Active     
10.232.187.74   5410.ecfd.f521          Feb 28 2019 01:37 PM    Automatic  Active     
10.232.187.99   0194.fb29.23df.e2       Feb 28 2019 04:25 PM    Automatic  Active     
10.232.187.100  0194.fb29.23de.c5       Feb 28 2019 05:03 PM    Automatic  Active     
10.232.187.101  0100.2368.ed39.e9       Feb 28 2019 05:04 PM    Automatic  Active     
10.232.187.102  0140.83de.8a14.a0       Feb 28 2019 04:47 PM    Automatic  Active     
10.232.187.103  0100.2368.ce9e.cb       Feb 28 2019 05:03 PM    Automatic  Active     
10.232.187.104  0100.2368.ceb9.af       Feb 28 2019 04:56 PM    Automatic  Active     
10.232.187.105  0100.2368.c9e6.c9       Feb 28 2019 05:01 PM    Automatic  Active     
10.232.187.106  0100.2368.cd43.0e       Feb 26 2019 03:07 PM    Automatic  Active     
10.232.187.194  01b4.a382.7492.8a       Feb 28 2019 08:14 AM    Automatic  Active 


Необходимо например через grep и регулярные вырождение выводить только те ип, которые заканчиваются в диапазоне 2-62
например Подходят
10.232.187.12
10.232.187.15
10.232.187.19
10.232.187.60
10.232.187.62

Не подходят
10.232.187.63
10.232.187.69
10.232.187.105
10.232.187.101

Больше говнокода богу говнокода! Напрмер так.

cat list.txt | perl -ne 'print if grep {$_>1 and $_<63} /187\.(\d{1,3} )/g'

Deleted
()

А, тебе строчки целиком не надо, только адреса? Тогда ещё проще.

Deleted
()

grep

заканчиваются в диапазоне 2-62

"\.[2-62]\+$"

Дальше думай сам.

mord0d ★★★★★
()

К первой колонке применяешь

awk -F. '$NF>=2 && $NF<=62'
Yorween
()
Ответ на: комментарий от mord0d

за студента его задания

Или за бездарного админа его работу. ☺

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

В том виде как я его привёл - я бы его не принял :).

Deleted
()

Скажи, а ты сам в школе своей не пытался контрольные решать?

Работать-то потом как будешь?

slamd64 ★★★★★
()
zsh# print -l ${(M)${${(@f)"$(<list.txt)"}%% *}:#*.([2-9]|[1-5]?|6[012])}
arto ★★
()
Ответ на: комментарий от wtsch

Вроде так, да не так( попадают в список ип которые заканчиваются и на 243 наприме а нужно от 2 до 62

vbox
() автор топика
Ответ на: комментарий от vbox

Ouups! Sorry!

cat list.txt | sed -r "s/\s.*//g" | grep -E "(\.[2-9]$)|(\.[1-5][0-9]$)|(\.6[0-2]$)"

wtsch
()
Ответ на: комментарий от vbox

Нет, пойдет. Но так лучше, красивее ;):

cat list.txt | sed -r "s/\s.*//g" | grep -E "\.(([2-9])|([1-5][0-9])|(6[0-2]))$"

wtsch
()
Ответ на: комментарий от akk

два зелёных чая и литр вишнёвого сока этому господину.

etwrq ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.