Можно ли рекурсивно заменить вхождения последовательности символов без повторения итерации по той же самой последовательности?
Выполняя sed
как в следующих сценариях, я могу получить упомянутый вывод.
$ echo XX | sed -e 's/XX/XoX/g'
XoX
$ echo XXX | sed -e 's/XX/XoX/g'
XoXX
$ echo XXXX | sed -e 's/XX/XoX/g'
XoXXoX
Тем не менее, я ожидаю, что результат будет соответствовать следующему.
Входные данные:
XX
XXX
XXXX
Ожидаемый результат:
XoX
XoXoX
XoXoXoX
Можно ли добиться ожидаемого поведения с помощью одного только sed?
X
и ничего больше. Оба решения терпят неудачу, если присутствуют другие персонажи ...X
на.
. Пожалуйста, смотрите редактировать.Я проверил, есть ли какой-нибудь флаг, чтобы это произошло.
Даже если бы такое поведение было там, оно будет очень ресурсоемким.
Однако в этом конкретном случае использования можно получить выражение всего два раза и достичь требуемой функциональности. т.е. с 2 повторяющимися
sed
выражениями.источник