Intereting Posts
Как передать список команд, отображаемых по «tab complete»? Не допускайте множественные нажатия клавиш после префикса в tmux Как изменить раскладку клавиатуры USB в консоли OpenBSD? Насколько разумны утилиты unix? Расширить раздел Linux в режиме двойной загрузки с Windows без потери данных? Разница между ifconfig и ipconfig? Некоторые сочетания клавиш не работают в Compiz Как остановить Mod4-P от переключения дисплея? Как я могу скопировать WAV-файл из аудио компакт-диска и проверить его? Как запустить одну команду с каталогом в качестве аргумента, затем cd к тому же? Я получаю «нет такого файла или каталога» Что означает «ВСЕ ВСЕ = (ВСЕ) ВСЕ» означает в судерах? AWK-скрипт для сравнения содержимого 2-х файлов Установка Alsa для вывода 44,1 кГц Каково максимальное количество x-клиентов? имя пользователя отображается как root вместо пользователя, который вошел в систему?

regex private ips и удалить из файла журнала

у меня есть большой файл журнала AWS ELB, из которого я хочу удалить приватный ip, например:

2018-06-03T23:59:57.000Z 66.249.66.129,10.0.1.81 [03/Jun/2018:23:59:57 +0000] "GET http://www.domain0.com/latest-news/dubai-duty-free-sales-rise-11-q1-12-04-2018/ HTTP/1.1" 200 16669 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" 2018-06-03T23:59:58.000Z 82.113.167.2,10.0.1.132 [03/Jun/2018:23:59:58 +0000] "GET http://www.domain3.com/feed HTTP/1.1" 200 17144 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11" 2018-06-03T23:59:58.000Z 192.243.55.95,10.0.1.81 [03/Jun/2018:23:59:58 +0000] "GET http://www.domain1.com/feed/ HTTP/1.1" 200 18532 "https://www.domain1.com/feed" "Mozilla/5.0 (compatible; SemrushBot/1.0~bm; +http://www.semrush.com/bot.html)" 2018-06-03T23:59:58.000Z 207.46.13.236,10.0.1.81 [03/Jun/2018:23:59:58 +0000] "GET http://www.domain.com/blogs/gadget-master/general/brightsparks-trophies-make-mark-2017-05/https/blogs/distribution-world/page/9/ HTTP/1.1" 200 16339 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)" 2018-06-03T23:59:59.000Z 62.210.215.100,10.0.1.81 [03/Jun/2018:23:59:59 +0000] "GET http://www.domain.com/electro-ramblings/tag/blog/feed/ HTTP/1.1" 200 1664 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36"`, "\n") 

дает мне регулярное выражение

но когда я бегу

 cat logs.txt | sed '/T/s/T/:/1' | sed -E 's/,10.0/ /g' 

но это только возвращает

 2018-06-03:23:59:57.000Z 66.249.66.129 .1.81 ... 

Как удалить частный IP с , из файла, используя регулярные выражения в Sed?

любой совет высоко ценится

Поскольку требовалось удалить только «частные» IP-адреса (10 …), регулярное выражение, заданное ender.qa, можно уточнить в

 sed -E '/T/s/T/:/1; s/,10\.([0-9]{1,3}.){2}[0-9]{1,3}//g' file 

или, поскольку этот IP не будет содержать пробелы, даже короче:

 sed -E '/T/s/T/:/1; s/,10\.[^ ]*//g' file 

Похоже, вы хотите, чтобы ваши «данные раньше»:

2018-06-03T23:59:57.000Z 66.249.66.129,10.0.1.81 [03/Jun/2018:23:59:57 +0000] ...

быть «данными после»:

2018-06-03:23:59:57.000Z 66.249.66.129 [03/Jun/2018:23:59:57 +0000] ...

Это верно?

Если да:

cat logs.txt | sed '/T/s/T/:/1' | sed -e 's/,.*\[//g'

Кроме того, вам не нужен cat :

sed '/T/s/T/:/1' logs.txt | sed -e 's/,.*\[/ \[/g'

По сути, вы удаляете любые символы (. *) Между запятой (,) и левой скобкой ([), которые необходимо экранировать.

Если вы хотите удалить только IP-адрес

sed '/T/s/T/:/1' logs.txt | sed -re 's/,([0-9]{1,3}\.){3}[0-9]{1,3}//g'

ИЛИ ЖЕ

sed '/T/s/T/:/1' logs.txt | sed -e 's/,\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}//g'

Ссылка: https://stackoverflow.com/a/14928879/4635198

Не совсем то, что вы просили, но это показывает, как использовать grepcidr для фильтрации (удаления) строк, содержащих IP-адреса в диапазоне частных адресов 10.0.0.0-10.255.255.255 в файле file :

 grepcidr -v '10.0.0.0-10.255.255.255' file 

То же самое, но с использованием синтаксиса сетевого блока CIDR:

 grepcidr -v '10.0.0.0/8' file