sed: bash vs sh

psihodog

Подскажите, плиз, почему не работает в sh:

bash$ echo 111 | sed 's/1\+/2/g'
2
sh$ echo 111 | sed 's/1\+/2/g'
111

? :confused:

ppplva

В dash работает.

ermsoft

Оба варианта на одном хосте?
У меня получилось так:

MacOSX bash$ echo 111 | sed 's/1\+/2/g'
111
MacOSX sh$ echo 111 | sed 's/1\+/2/g'
111
Debian etch bash$ echo 111 | sed 's/1\+/2/g'
2
Debian etch sh$ echo 111 | sed 's/1\+/2/g'
2
Debian etch dash$ echo 111 | sed 's/1\+/2/g'
2

То есть это скорее от sed'а зависит, от того, включены ли extended-регэкспы.
А \+ и вообще любой символ после \ любой шелл вроде бы должен передавать как есть:
$ echo '\+'
\+

juliuzz

which sed ?
alias sed ?

psihodog

да, спасибо. =)
меня уже пост 'а натолкнул на эту мысль, но ты опередил. =)
я и забыл, про алиасы, а вич вот первым делом проверил
alias sed='gsed'
Оставить комментарий
Имя или ник:
Комментарий: