2013-11-17 4 views
1

У меня есть документ, содержащий смесь китайского и английского текста и т.д .:Как добавить разрыв строки перед каждым набором символов CJK ([ o200- o377]) с sed?

This is some text.你好。This is some more text. 

Мне нужно поместить разрыв строки только перед каждой части китайского текста, или [\o200-\o377]. Например .:

This is some text. 
你好。This is some more text. 

Я попытался это, но она ставит каждую из китайских иероглифов на уникальных линиях:

LC_ALL="POSIX" sed 's/[\o200-\o377]/\n&/g' 

Как я могу добавить разрыв строки перед каждым CJK характера с sed?

ответ

3

вы фактически заменяете каждый экземпляр такого символа с символом новой строки и тем, что соответствовало. вам кажется, что нужно заменить каждую последовательность по меньшей мере одним таким символом, с новой строкой, а затем с тем, что было сопоставлено.

s/[\o200-\o377]\+/\n&/g 

(примечание:. sed вероятно, ожидает утверждения примерно регулярное выражение POSIX-Mine «POSIX.2 Brès должны быть поддержаны, но они не полностью из-за проблем с производительностью» Таким образом, \+ является правильным использованием «расширенной» (sed -r), просто +, таким образом s/[\o200-\o377]+/\n&/g, было бы правильно.)