0

我有一个包含两种类型段落的 .txt 文件:

一些语句和数字 (02) 等,然后是一个返回
更多的东西,然后是两个返回

然后是单行段落,后跟两个返回

随着一些更多的双行文本返回
一些更多的文本。

我想从文本文件中删除所有单行段落。所以结果是:

一些语句和数字 (02) 等,然后是一个返回
更多的东西,然后是两个返回

随着一些更多的双行文本返回
一些更多的文本

我一直在尝试使用 sed 和 awk 来执行此操作,但我一直遇到问题,我提出了一个正则表达式,该表达式将寻找一个换行符,后跟一些字符,并以两个连续的换行符 \n\n 结尾。

有没有办法用一个衬里做到这一点,还是我必须编写一个脚本来逐行阅读并确定段落的长度并以这种方式将其剥离?

谢谢。

4

2 回答 2

1
awk -F '\n' -v RS='' -v ORS='\n\n' 'NF>1' input.txt
  • RS设置为空字符串时,每条记录总是在遇到的第一个空行处结束。
  • RS设置为空字符串并FS设置为单个字符时,换行符始终充当字段分隔符。

[阅读更多]

于 2012-04-11T16:10:53.307 回答
1

我倾向于使用 Perl 进行面向段落的解析:

perl -00 -lne 'print if tr/\n/\n/ > 0'
于 2012-04-11T18:20:10.870 回答