Это может работать для меня:
echo "this and this and this and this and this and this" |
sed 's/this/&\n/6g;s/this[^\n]/\U&/3g;s/\n//g'
this and this and THIS and THIS and THIS and this
Пояснение:
С 3 по 5 вхождение строки объекта может упоминаться как m'th
до n'th
- Добавить новую строку (или любой символ, отсутствующий в строке) к строке объекта из
m'th+1
глобально.
- Изменение или замена строки объекта из вхождения
n'th
во всем мире.
- Удалите все новые строки, восстановив, таким образом, исходные строки объекта
В этом примере это тоже работает:
sed 's/this/\U&/3ig;s//\L&/6g'
Как это сделать:
sed ':a;s/this/\U&/3;s/^/\n/;/^\n\{3\}/!ba;s///'