|
|||||||
Как выделить подстроку в Sed или Grep (получить только то, что входит в паттерн)
Время создания: 16.09.2016 12:19
Текстовые метки: linux, bash, sed, grep, подстрока, выделить, только, оставить, что нужно, входит, паттерн, регулярное, выражение
Раздел: Компьютер - Программирование - Регулярные выражения
Запись: xintrea/mytetra_syncro/master/base/1474017566pzh30lte1o/text.html на raw.github.com
|
|||||||
|
|||||||
Вопрос: Есть файл следующего содержания: 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/' ./list.txt 195.154.8.111 192.187.124.98 193.11.164.243 Sed вначале найдет IP-адрес в строке по шаблону (.+):.+ , а потом заменит всю строку на найденное значение с помощью ссылки назад \1. В данной команде list.txt - это файл с исходными строками. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|