如何删除多个文件中第三行后的文本

如何删除多个文件中第三行后的文本

我正在寻找一种方法,以便可以删除文本文件中特定行之后的行。

例如,一个文件包含 5 行。我想删除第三行之后的行。请参见

  • 1号线
  • 2号线
  • 3号线
  • xxxxxx
  • xxxxxx1

这里,我想保留前 3 行(第 1 行、第 2 行、第 3 行)并删除剩余的 2 行(xxxxxx、xxxxxx1)并自动保存该文本文件。我想对多个文本文件执行此操作。想删除文件夹内每个文本文件中第 3 行之后的每一行。

有什么方法可以使用 notepad++ 来实现吗?提前致谢

答案1

对于许多 Linux 工具来说,这似乎是相当标准的文本操作(不要介意技术上的错误),GNU sed 就是其中之一。在 Bash/Ubuntu 适用于 Windows 10 之前,您可以使用类似git bash我已经测试过它可以用于下面的命令。

sed -i '4,$d' *

将删除您所在目录中所有文件从第 4 行开始的所有行。

答案2

无需安装软件即可完成此操作,只需创建一个简单的批处理脚本即可。以下脚本可以完成您想要的操作:

@echo off > NEWFILE & setLocal enableDELAYedeXpansioN
set/p D=delete all after what line?
set N=
:main
for /f "tokens=* delims= " %%a in (file.txt) do (
set/a N+=1
if !N! leq !D! echo.%%a
) >> NEWFILE

实际文件在哪里file.txt。执行此脚本时,它会询问您要删除哪一行,只需说3。复制上述代码并将其粘贴到.bat文件中。

相关内容