我有一个包含中英文混合文本的文档,例如:
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'
如何在每个带有sed
的 CJK 字符之前添加换行符?
您实际上是将此类字符的每个实例替换为换行符和匹配的内容。 您似乎希望替换至少一个此类字符的每个序列,后跟一个换行符,后跟匹配的内容。
s/[o200-o377]+/n&/g
(注意:sed
可能期望大约 POSIX 正则表达式 - 我的声明"应该支持 POSIX.2 BRE,但它们并不完全是因为性能问题。因此,+
是正确的。使用"扩展"(sed -r
),简单地+
,因此s/[o200-o377]+/n&/g
,是正确的。