【问题标题】:How to delete first blank row in multiple files?如何删除多个文件中的第一个空白行?
【发布时间】:2013-05-31 00:20:33
【问题描述】:

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

【问题讨论】:

  • 只能使用notepad++?
  • 可能的 shell 脚本解决方案 - stackoverflow.com/questions/11226938/… 可能比在 Notepad++ 中为多个文件执行此操作更容易。
  • 虽然可以使用 notepad++ 的 Find in Files 选项在多个文件中找到替换,但我不知道如何只匹配第一个空行。
  • 我想只用notepad++没有必要,但必须在windows中完成。
  • @frikozoid - 啊,不完全是 ;-) 第 1 点:实际上,npp 的问题是您不能关闭 多行模式!多行模式意味着^$ 匹配每行(multi 行)的开头和结尾,而不是整个文件。第 2 点:实际上,尽管存在这个问题,但在 npp 中有(至少?)两种方法可以做到这一点!有关详细信息,请参阅下面的答案。

标签: regex notepad++


【解决方案1】:

你需要这样的 bat 脚本

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

将以上代码另存为something.bat,在你的目录下运行。

【讨论】:

    【解决方案2】:

    这将使用 Notepad++ 工作(使用版本 6.2.3 测试):

    \A[\r\n]+

    说明:

    \A\Z 始终匹配整个文件的开头和结尾,与多行设置无关。

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

    替代方案:

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

    (?<!.)[\r\n]+

    说明:

    这使用否定的后视,(?<!),以确保在CRs 和LFs 的序列之前不存在任何字符。

    注意:您必须勾选 . matches newline 复选框才能使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      • 1970-01-01
      • 2023-03-02
      相关资源
      最近更新 更多