我正在寻找一种方法来删除文件中的所有文本,直到到达新的空白行。例如:
SimpleIndexingProgressMonitor progressMonitor = new SimpleIndexingProgressMonitor();
fullTextSession
.createIndexer(Address.class)
.typesToIndexInParallel(1)
.batchSizeToLoadObjects(50)
.cacheMode(CacheMode.IGNORE)
.threadsToLoadObjects(30)
.idFetchSize(150)
.progressMonitor(progressMonitor)
.startAndWait();
应该最终看起来像这样:
Line 1
Line 2
Line 3
Line 4
Line 5
谢谢。
答案 0 :(得分:2)
您可以使用awk
并测试0个字段。 (如果行只有空格或制表符,则算作空白也可以)
awk 't;NF==0 {t=1}' file
Line 3
Line 4
Line 5
t;
打印行,如果为真
NF==0
测试字段数= 0
如果字段为0,则设置t=1
可以简化一些:
awk 't;!NF{t=1}' file
答案 1 :(得分:0)
这可能对您有用(GNU sed):
sed '0,/^$/d' file
从第1行删除所有行,直到一个空行。这是GNU特定的n.b。 1,/^$/d
填充不包括第1行,因此,如果第1行为空,并且文件的其余部分为非空行,则会删除整个文件。
替代方法,适用于所有sed:
sed -n '/^$/{:a;n;p;ba}' file
关闭自动打印-n
选项。仅打印第一个空行之后的文件末尾的行。