linux shell - 在语料库中添加完全停止(句点)到不以句号结尾的行尾

时间:2013-04-09 14:31:05

标签: shell text sed awk end-of-line

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

1 个答案:

答案 0 :(得分:3)

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.