
В программировании на bash, если задана переменная, скажем varA
, которая хранит строку, содержащую #
символ. Предположим, varA
что содержит это значение: ASD# 1
, мне нужно добавить обратную косую черту \
в начало #
, чтобы вывод мог иметь это: ASD\# 1
. Следующий код почти достиг моей цели, просто замена строки, похоже, не работает, и я не могу присвоить вывод из команды sed другой переменной. Есть что-нибудь по этому поводу?
varA="ASD# 1"
echo $(sed s/\#/\\#/g <<< ${varA})
решение1
В вашем выражении отсутствует кавычка sed
.
Пытаться:
$ varA="ASD# 1"
$ echo "$(sed 's/#/\\#/g' <<< "${varA}")"
ASD\# 1
решение2
Есть накладные расходы для использования sed
только одной переменной. В bash
вы можете использовать ${varA/\#/\\\#}
.