MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Как выделить подстроку в Sed или Grep (получить только то, что входит в паттерн)
16.09.2016
12:19
Текстовые метки: linux, bash, sed, grep, подстрока, выделить
Раздел: Компьютер - Программирование - Регулярные выражения

Вопрос:


Есть файл следующего содержания:

195.154.8.111:80 orport=443 id=FCB66

192.187.124.98:9030 orport=9001 id=FD187

193.11.164.243:9030 orport=9001 id=FFA72


Нужно выбрать из него IP-адреса. Не могу понять, как в sed (или в grep?) получить только то, что попадает под паттерн.



Ответ:


Проще всего сделать через grep, воспользовавший опцией -o. Например:


grep -E -o "([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)"


или с традиционными выражениями PCRE:


grep -P -o "\d+\.\d+\.\d+\.\d+"


Можно через sed таким способом:


$ sed -r 's/"(.+):.+/\1/' ./raw

195.154.8.111

192.187.124.98

193.11.164.243


В sed синтаксис не понятен, непонятно как работает, надо разбираться дальше.


Так же в этом разделе:
← Содержание ...
 
MyTetra Share v.0.35
Яндекс индекс цитирования