我正在寻找一种方法,以便可以删除文本文件中特定行之后的行。
例如,一个文件包含 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
文件中。