Я использую sed для замены строки в файле конфигурации.sed escape user input string
Пользователь должен ввести строки salt
, а затем я заменить эту salt
строку в конфигурационном файле:
Sample config file myconfig.conf
CONFIG_SALT_VALUE=SOME_DUMMY_VALUE
я использую команду, чтобы заменить фиктивное значение со значением salt
, введенного пользователем.
sed -i s/^CONFIG_SALT_VALUE.*/CONFIG_SALT_VALUE=$salt/g" ./myconfig.conf
Issue: значение $salt
может содержать любой символ, поэтому, если $salt
содержит /
(например, 12d/dfs
), то мои выше SED команды перерывы.
Я могу изменить разделитель на !
, но теперь, если $salt
содержит amgh!fhf
, тогда моя команда sed сломается.
Как мне решить эту проблему?
AWK действительно лучший инструмент для этого +1 к – anubhava
на GNU AWK, это не получается, если 'salt = 'foo \\ bar'' –
@thatotherguy после некоторого исследования я нашел решение для этого! Эд Мортон поставил немного света, как обычно:) – fedorqui