The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Как экранировать апостроф в sed?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Как экранировать апостроф в sed?"  +/
Сообщение от stereoPANDA email on 02-Фев-11, 15:14 
Хочу заменить единички на апострофы.
echo 111 | sed 's/111/\'\'\'/g'
Подскажите пожалуйста?
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Как экранировать апостроф в sed?"  +/
Сообщение от Andrey Mitrofanov on 02-Фев-11, 15:26 
> Хочу заменить единички на апострофы.

**>экранировать апостроф

Никак. Переходите к... конкатенированию! %)

$ echo 111 | sed "s/111/'''/g"
$ echo 111 | sed 's/111/'"'''"'/g'
$ echo 111 | tr 1 \'
$ echo 111 | sed 's/111/'\'\'\''/g'

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Как экранировать апостроф в sed?"  +/
Сообщение от stereoPANDA email on 02-Фев-11, 15:36 
>> Хочу заменить единички на апострофы.
> **>экранировать апостроф
> Никак. Переходите к... конкатенированию! %)
> $ 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 вариантом?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Как экранировать апостроф в sed?"  +/
Сообщение от Andrey Mitrofanov on 02-Фев-11, 16:30 
>>> Хочу заменить единички на апострофы.
>> **>экранировать апостроф
>> Никак. Переходите к... конкатенированию! %)
>> $ 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ый без обрамления-экранирования "просто строк". В отсутствие пробелов разницы нет.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Как экранировать апостроф в sed?"  +/
Сообщение от Anoobizz on 15-Июл-13, 14:40 
\x27
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2023 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру