Вы можете найти IP-подобную подстроку и удалить все после нее:
sed -E 's/([0-9]{1,3}(\.[0-9]{1,3}){3}).*/\1/' # POSIX ERE version
sed 's/\([0-9]\{1,3\}\(\.[0-9]\{1,3\}\)\{3\}\).*/\1/' # BRE POSIX version
Шаблон ([0-9]{1,3}(\.[0-9]{1,3}){3})
- это упрощенный шаблон регулярных выражений IP-адресов, который сопоставляет и захватывает от 1 до 3 цифр, а затем 3 вхождения точки и снова от 1 до 3 цифр, а затем .*
сопоставляет и использует оставшуюся часть строки. , Заполнитель \1
в шаблоне замены вставляет захваченное значение обратно в результат.
Обратите внимание, что в паттерне BRE POSIX вы должны экранировать (
и )
, чтобы сделать их конструкцией группы захвата, и вам нужно экранировать {...}
, чтобы сделать его квантификатором диапазона / интервала / ограничения (он имеет много имен в литературе регулярных выражений).
См. онлайн-демо .