The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Как экранировать апостроф в sed?, !*! stereoPANDA, 02-Фев-11, 15:14  [смотреть все]
Хочу заменить единички на апострофы.
echo 111 | sed 's/111/\'\'\'/g'
Подскажите пожалуйста?
  • Как экранировать апостроф в sed?, !*! Andrey Mitrofanov, 15:26 , 02-Фев-11 (1)
    > Хочу заменить единички на апострофы.

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

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

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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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