С GNU / BSD / busybox sed
, которые поддерживают опцию -i
:
param=4
sed -i'' -e 's/\([[:upper:]]\)/\1'"$param"'/g' input.txt
Это заменяет каждую заглавную букву внутри захваченной группы \(...\)
g
лобально на первую захваченную группу \1
и значение переменной param
на месте.
Для стандарта sed
вам нужен временный файл или sponge
из пакета moreutils
:
param=4
sed 's/\([[:upper:]]\)/\1'"$param"'/g' input.txt > temp && mv temp input.txt
param=4
sed 's/\([[:upper:]]\)/\1'"$param"'/g' input.txt | sponge input.txt