Исключение одинарных кавычек ** с ** псевдонимом [дубликат]

0
14.02.2017, 19:26
3 ответа

Я могу избежать всего сразу с помощью

printf "%q\n" "$string"

Но вот ваш ответ:

alias esc_single_quotes="sed \"s/'/\\\\\\\\'/g\""
echo  "$string" | esc_single_quotes 
JC\'s alias to escape "double quotes"

или:

alias esc_single_quotes='sed "s/'\''/\\\\'\''/g"'
echo  "$string" | esc_single_quotes 
JC\'s alias to escape "double quotes"
1
28.01.2020, 02:34
#!/usr/bin/env bash

function esc_double_quotes() {
    echo $* | sed 's|"|\\\\"|g'
}
0
28.01.2020, 02:34

Чтобы помочь нашим глазам, давайте упростим его:

$ alias esc_single_quotes='sed "s|\x27|\x5c\x5c\x27|g"'

$ echo "this is 'something'"
this is 'something'

$ echo "this is 'something'" |esc_single_quotes
this is \'something\'
1
28.01.2020, 02:34

Теги

Похожие вопросы