Подставляя строки IP - PullRequest
       13

Подставляя строки IP

0 голосов
/ 07 декабря 2010

Я пытаюсь записать строки в файл. Это файл, sed_tmp, с одной строкой:

, "127.0.0.2");

Я использую команду sed:

sed -r 's/[0-9{1,3}]\.[0-9{1,3}]\.[0-9{1,3]\.[0-9{1,3}]/XXX.XXX.XXX.XXX/g' ./sed_tmp

и результат

, "12XXX.XXX.XXX.XXX");

но мне нужен результат

, "XXX.XXX.XXX.XXX");

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 07 декабря 2010

Напишите {} вне []

sed -r 's/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/XXX.XXX.XXX.XXX/g' ./sed_tmp
1 голос
/ 07 декабря 2010

это работает:

 sed "s/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*/XXX.XXX.XXX.XXX/g"

Я никогда не видел синтаксис {1,3}, который вы там используете, есть ли у вас ссылка где-нибудь, описывающая его?

Редактировать: похоже, что sed использует его для немного по-другому: http://www.grymoire.com/Unix/Sed.html#uh-35

...