Regex 如何删除多个文件中的第一个空行?

Regex 如何删除多个文件中的第一个空行?,regex,notepad++,Regex,Notepad++,我有数千个第一行为空的文本文件。是否可以一次删除所有文件中的此行 您需要这样一个bat脚本 @echo off for %%i in (*.txt) do ( more +1 "%%~fi">>temp del "%%~fi" ren temp "%%~nxi" ) 将上述代码另存为something.bat并在您的目录下运行。这将使用记事本++(使用版本6.2.3测试): \A[\r\n]+ 说明: 无论多行设置如何,\A和\Z始终匹配整个文件的开头和结尾 注意:这个正则表达式比

我有数千个第一行为空的文本文件。是否可以一次删除所有文件中的此行


您需要这样一个bat脚本

@echo off
for %%i in (*.txt) do (
more +1 "%%~fi">>temp
del "%%~fi"
ren temp "%%~nxi"
)

将上述代码另存为something.bat并在您的目录下运行。

这将使用记事本++(使用版本6.2.3测试):

\A[\r\n]+

说明:

无论多行设置如何,
\A
\Z
始终匹配整个文件的开头和结尾

注意:这个正则表达式比OP更一般。它将删除以任何换行顺序终止的任意数量的连续初始空白行(
\r\n
\r
\n
)。 没有什么比更改数千个文件后发现一对文件具有不同的换行顺序或有多个初始空白行更糟糕的了

备选方案:

另一个有效的正则表达式是:

说明:

这将使用负向后看,
(?),以确保
CR
s和
LF
s序列之前不存在字符


注意:您必须勾选
.matches newline
复选框,这样才能工作。

仅使用记事本++?可能的shell脚本解决方案-可能比在记事本++中对多个文件执行此操作更容易。虽然可以使用记事本++的
find in files
选项在多个文件中查找replace,但我不知道如何仅进行匹配第一个空行。我想不必只使用记事本+,但必须在windows中完成。@frikozoid-啊,不完全;-)第1点:事实上,npp的问题是你不能关闭多行模式!多行模式意味着在每行(多行)的开始和结束处匹配
^
$
第2点:事实上,尽管存在这个问题,但在npp中有(至少?)两种方法可以做到这一点!!详情请参见下面我的答案。