как вставить обратную косую черту перед символом #?

как вставить обратную косую черту перед символом #?

В программировании на 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/\#/\\\#}.

Связанный контент