我需要删除大约 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/
有很多解决方案