Переменная сценария, заменяющая символы - PullRequest
6 голосов
/ 29 апреля 2011

У меня есть переменная var = "abcde $$$$$$$$ fff $$ gg".Я хочу заменить все $ пробелом '', но следующий код ставит только один пробел

var=$( echo "$var" | tr '$' ' ')

Как я могу заменить их все?

Ответы [ 3 ]

15 голосов
/ 29 апреля 2011

вы можете заменить без вызова внешних команд (используя bash)

$ var='abcde$$$$$$$$fff$$gg'
$ echo "${var//$/ }"
abcde        fff  gg

Обратите внимание, что вы должны использовать одинарные кавычки, чтобы знак "$" не интерполировался

10 голосов
/ 29 апреля 2011

У меня работает. Вам нужно будет использовать одинарные кавычки или экранировать знаки доллара, иначе они будут удалены из строки в двойных кавычках:

echo 'abcde$$$$$$$$fff$$gg' | tr '$' ' '
abcde        fff  gg

echo "abcde\$\$\$\$\$\$\$\$fff\$\$gg" | tr '$' ' '
abcde        fff  gg

echo abcde\$\$\$\$\$\$\$\$fff\$\$gg | tr '$' ' '
abcde        fff  gg

echo $'abcde$$$$$$$$fff$$gg' | tr '$' ' '
abcde        fff  gg
6 голосов
/ 24 сентября 2016

Старый вопрос, но я пишу это для них. Hwo приедет сюда после поиска в их неисправной поисковой системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...