notepad++ 删除文件中除特定行之外的所有行

notepad++ 删除文件中除特定行之外的所有行

我需要删除大约 30000 个文件中的所有行,只留下特定行(编号 272)。每个文件的行内容都不同(数字串)。我现在已经花了相当多的时间,但找不到任何可以让我做到这一点的功能。有什么插件可以帮忙吗?

答案1

正如@DavidPostill 所说,Notepad++ 不是完成这项工作的工具。

相反,我建议(正如他所做的那样)您使用某种脚本语言来遍历文件,然后遍历行,并将所需的单行保存到新文件中。

下面是可以执行此操作的 PowerShell 脚本:

# Set by user to their needs.
$filesToCheck = "c:\pathToFiles\*.txt"
$lineToKeep = 272

# Gather list of files based on the path (and mask) provided by user.
$files = gci $filesToCheck

# Iterate over each file.
foreach ($file in $files) {

    # Load the content of the current file.
    $contents = Get-Content $file

    # Iterate over each line in the current file.
    for ($i = 0; $i -le ($contents.Length - 1); $i++) {

        # Are we on the line that the user wants to keep?
        if ($i -eq ($lineToKeep - 1)) {

            # Create a new file to hold the line.
            $newName = "$($file.Basename)-New.txt"
            # Write the current line to the file.
            $contents[$i] | Out-File $newName
        }
    }
}

答案2

你也可以使用unix工具(使用cygwin)来处理一个文件

head -n 272 文件 | tail -1 > 文件

你也可以编写一个 python 脚本并在 npp 插件中使用它http://npppythonscript.sourceforge.net/

有很多解决方案

相关内容