句子是以句点(.
),感叹号(!
)或问题(?
)结尾的句子。我试过了
tr '\n' ' ' < input | sed -e 's/[.] \s*/. \\n/g'
我在文件中添加了\n
,但该行并没有真正打破。
我在Mac OS X Mavericks上使用bash 3.2版本。
答案 0 :(得分:0)
看看这是否有效。 ('\ 012'是tr命令理解的新行字符,你用空格替换它,然后最后用sed“捕获”一个句号,一个感叹号,或一个问号?字符使用(和),无论什么字符可用于\ 1,之后你想要\ n新的sed。sed边界字符,我在下面的例子中用的是#。
tr '\012' ' ' < someInputFile.txt | sed "s#\([\.\?\!]\)#\1\n#g"