Хочу заменить единички на апострофы.
echo 111 | sed 's/111/\'\'\'/g'
Подскажите пожалуйста?
> Хочу заменить единички на апострофы.**>экранировать апостроф
Никак. Переходите к... конкатенированию! %)
$ echo 111 | sed "s/111/'''/g"
$ echo 111 | sed 's/111/'"'''"'/g'
$ echo 111 | tr 1 \'
$ echo 111 | sed 's/111/'\'\'\''/g'
>> Хочу заменить единички на апострофы.
> **>экранировать апостроф
> Никак. Переходите к... конкатенированию! %)
> $ echo 111 | sed "s/111/'''/g"
> $ echo 111 | sed 's/111/'"'''"'/g'
> $ echo 111 | tr 1 \'
> $ echo 111 | sed 's/111/'\'\'\''/g'Спасибо, Андрей. А разъясни, пожалуйста, в чем разница между 1 и 2 и 4 вариантом?
>>> Хочу заменить единички на апострофы.
>> **>экранировать апостроф
>> Никак. Переходите к... конкатенированию! %)
>> $ echo 111 | sed "s/111/'''/g"
>> $ echo 111 | sed 's/111/'"'''"'/g'
>> $ echo 111 | tr 1 \'
>> $ echo 111 | sed 's/111/'\'\'\''/g'
> Спасибо, Андрей. А разъясни, пожалуйста, в чем разница между 1 и
> 2 и 4 вариантом?Пожалуйста.
Для sed-а разница никакой, он получает один и тот же первый аргумент, текстовую строку
s/111/'''/g
. Разница в её формировании на уровне шела: 1) используются двойные кавычки (побочный эффект - проход макро-подсткновки (=пустой) шелом по этой строке) для того, чтобы шел рассматривал ' как "простой" символ; 2) конкатенация трёх строк - s/111/ + ''' + /g, обрамлённых разными кавычками; 4) аналогично -- строки, трёх экранированных символов и строки.
Вот ещё 5ы и 6ой варианты:
| sed s/111/"'''"/g
| sed s/111/\'\'\'/g-- соответственно, 2ой и 4ый без обрамления-экранирования "просто строк". В отсутствие пробелов разницы нет.
\x27