Проблема замены точек в sed

2007-10-31 Пенетрантность Andrei Stankevich
Здравствуйте.

Задача: есть такие строки в файле test.txt:

T9TT9TT9T...T9TT9T~T9TEuro

Необходимо заменить комбинацию T9T... на букву D. Делаю следующее:

sed s/T9T\.\.\./D/g test.txt

В результате получаю:

DTDDT~Do

хотя ожидал вот такой результат:

T9TT9TDT9TT9T~T9TEuro

Как добиться желаемого с помощью sed?

Заранее спасибо за ответы.
Процветайте!
Андрей.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Проблема замены точек в sed

2007-10-31 Пенетрантность Artem Chuprina
Andrei Stankevich - debian-russian@lists.debian.org  @ Wed, 31 Oct 2007 
11:15:18 +0300:

 AS Здравствуйте.

 AS Задача: есть такие строки в файле test.txt:

 AS T9TT9TT9T...T9TT9T~T9TEuro

 AS Необходимо заменить комбинацию T9T... на букву D. Делаю следующее:

 AS sed s/T9T\.\.\./D/g test.txt

 AS В результате получаю:

 AS DTDDT~Do

 AS хотя ожидал вот такой результат:

 AS T9TT9TDT9TT9T~T9TEuro

 AS Как добиться желаемого с помощью sed?

sed s/T9T\\.\\.\\./D/g test.txt

Прежде чем RE попадет к sed, аргумент командной строки попадает к sh.
Он и съедает бэкслеши.

-- 
Artem Chuprina
RFC2822: ran{}ran.pp.ru Jabber: [EMAIL PROTECTED]

А еще следует потребовать, чтобы программисты, перед тем, как писать код,
внимательно прочли спецификацию: с сыром - это чизбургер.
Игус в [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Проблема замены точек в sed

2007-10-31 Пенетрантность Nick 'TARANTUL' Novikov
31.10.07, Andrei Stankevich[EMAIL PROTECTED] написал(а):
 Задача: есть такие строки в файле test.txt:

 T9TT9TT9T...T9TT9T~T9TEuro

 Необходимо заменить комбинацию T9T... на букву D. Делаю следующее:

 sed s/T9T\.\.\./D/g test.txt

 В результате получаю:

 DTDDT~Do

 хотя ожидал вот такой результат:

 T9TT9TDT9TT9T~T9TEuro

 Как добиться желаемого с помощью sed?

Хороший вопрос.
echo 'T9TT9TT9T...T9TT9T~T9TEuro' | sed 's/T9T\.\.\./D/g'
T9TT9TDT9TT9T~T9TEuro
Разница ясна ?

-- 
tarantul