сед и специальный символ - PullRequest
       29

сед и специальный символ

0 голосов
/ 30 ноября 2010

я пробую следующую команду sed, но мне не везет со специальными символами:

echo "x#asdf" | sed "s/\([^-]\)#/\1\n/g"

x
asdf

но если я использую какой-то специальный символ в test.txt

echo "ä#asdf" | sed "s/\([^-]\)#/\1\n/g"

ä#asdf

почему?

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

echo "ü#asdf" | sed "s/ü/-/g"
-#asdf

но это не так:

echo "ü#asdf" | sed "s/[ü]/-/g"
ü#asdf

1 Ответ

0 голосов
/ 25 марта 2011

Я не уверен в этом, потому что ваши команды sed работают нормально для меня (gnu sed 4.1.5), но попробуйте вызвать sed следующим образом:

$ LANG=de_DE.UTF-8 sed ...

См. Этот пост для получения дополнительной информации: Почему sed не работает с международными символами и как это исправить? .

Если это не сработает, может помочь обновление до gnu sed 4.2, если вы можете.В файле NEWS написано «исправлена ​​многобайтовая обработка» для 4.2, но не будем вдаваться в подробности.

...