2

我有一个很大的语料库,它在句子级别被分割。这意味着每一行包含一个句子。其中一些行以句号(句点)结尾,有些则没有。我正在寻找一种有效的方法来在不以一个结尾的行的末尾添加句号。例如,受益于 sed 或 awk 来执行此任务的 shell 脚本。

4

1 回答 1

4

Sed 可能是最简单的方法:

$ cat file
sentence one
sentence two.
sentence three

$ sed 's/[^.]$/&./' file
sentence one.
sentence two.
sentence three.

在不以句点结尾的行上,[^.]$将最后一个字符替换为匹配的最后一个字符,后跟一个句点&.。您应该注意尾随空格可能包含句点作为最后一个可用字符的行。

编辑

awk会这样做:

$ awk '/[^.]$/{$(NF+1)="."}1' FS= OFS= file
sentence one.
sentence two.
sentence three.
于 2013-04-09T14:36:04.223 回答