Вы не можете использовать регулярное выражение в Bash расширении переменной.
В вашем l oop вы можете использовать
sed 's/+\{1,\}/MISSING/g' <<< "$l"
Или вы можете использовать sed
непосредственно в файле
sed 's/+\{1,\}/MISSING/g' /path/file.txt
+\{1,\}
Шаблон POSIX BRE соответствует литералу +
(+
) 1 или более раз (\{1,\}
).
См. sed
демонстрацию в Интернете
sed 's/+\{1,\}/MISSING/g' <<< "substring1+++++substring2++++++++++++++substring3+substring4"
# => substring1MISSINGsubstring2MISSINGsubstring3MISSINGsubstring4
Если вам нужно внести изменения в тот же файл, используйте любую технику, описанную в sed редактировать файл на месте .