从文本文件中删除部分匹配的行

从文本文件中删除部分匹配的行

我有 1 个大型 xml 文件,其中有类似以下行 -

<text file name 5 HD text>
<text file name 2 text>
<text file name 3 text>
<text file name HD 2 text>
<text file name 5 text>

是否可以使用 vbscript 或 powershell 输出 -

<text file name 5 HD text>
<text file name 3 text>
<text file name HD 2 text>

并在新文件中添加被删除的行 -

<text file name 2 text>
<text file name 5 text>

HD位于文件名中的任何位置且不进行排序。

我发现根据使用 Windows PowerShell 的部分字符串匹配删除文本文件中的整行但这不是确切的答案。我不喜欢 Java,因为我出于黑客安全考虑删除了它。

答案1

根据任意标准(例如,是否有 HD 标签)将行分成不同文件的简单脚本

# Get the contents of the file.
$file = get-content ~\file.xml

# Loop through the xml file adding all "HD" tags to one file and all non "HD" tags to another file
foreach($text in $file)
{
    if($text.Contains("HD")) {
        Add-Content ~\hd.txt $text
    } 
    else {
        Add-Content ~\nohd.txt $text
    }
}

如果标准略有不同,那么只需更改“if”语句以满足您的目的。

相关内容