使用bash将文本分成句子

时间:2014-11-14 18:43:20

标签: bash sentence

句子是以句点(.),感叹号(!)或问题(?)结尾的句子。我试过了

tr '\n' ' ' <  input | sed -e 's/[.] \s*/. \\n/g'

我在文件中添加了\n,但该行并没有真正打破。

我在Mac OS X Mavericks上使用bash 3.2版本。

1 个答案:

答案 0 :(得分:0)

看看这是否有效。 ('\ 012'是tr命令理解的新行字符,你用空格替换它,然后最后用sed“捕获”一个句号,一个感叹号,或一个问号?字符使用(和),无论什么字符可用于\ 1,之后你想要\ n新的sed。sed边界字符,我在下面的例子中用的是

tr '\012' ' ' < someInputFile.txt | sed "s#\([\.\?\!]\)#\1\n#g"