LINUX.ORG.RU

grep, не удалять из поиска найденные символы

 


0

2

Есть строка 10.20.30.40.

Необходимо найти следующую последовательность: число (повторяется 1 или несколько раз), точка, число (повторяется 1 или несколько раз).

То есть: 10.20 20.30 30.40

Казалось бы, всё просто:

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

Но не тут-то было:

echo "10.20.30.40" | grep -o -E "[0-9]+\.[0-9]+"
10.20
30.40

20.30 отсутствует в выводе. Как я понял, символы, которые уже были найдены ранее, исключаются из дальнейшего поиска grep.

Задачу удалось решить с помощью pcre2grep:

echo "10.20.30.40" | pcre2grep -o1 -o2 '([0-9]+)(?=(\.[0-9]+))'
10.20
20.30
30.40

Как решить задачу с помощью grep?

★★★