У меня есть такая строка:
test=test1&test2=test3&test3
Мой вопрос: как я могу заменить все слова между = и & на Bash?
Таким образом, я могу получить такой вывод:
test=replaced&test2=replaced&test3
Заранее спасибо.
Вы можете использовать bash «расширенный глобус» для чистого bash решения, используя оператор подстановки ($ {var //}.
X='test=replaced&test2=replaced&test3' shopt -s extglob echo ${X//=*([!&])&/=replaced&}
Используйте sed. Найдите строку, начинающуюся с = и продолжающуюся без амперсандов, замените ее на =replaced.
sed
=
=replaced
echo 'test=test1&test2=test3&test3' | sed 's/=[^&]*/=replaced/g'
/g означает глобально, без него, только первое вхождение было бы заменен.
/g