Есть строка 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?