gpt4 book ai didi

parsing - 给定重复的部分,如何使用 Powershell 查找符合特定条件的部分

转载 作者:行者123 更新时间:2023-12-02 12:29:12 24 4
gpt4 key购买 nike

我需要解析一个文本文件并从中检索数据...基于同一文件中的其他数据..

我需要找到那些说不行的行..然后找到它们所在的节点..我知道如何提取数据......并找到“不正常”和“节点”。我还有一个想法,我确信找到我正在寻找的东西过于复杂。我可以将节点行解析为数组,就像

$test = (select-string -path C:\error.txt -Pattern "Node:").linenumber

然后找到不正常的行号并备份哈哈,但这似乎是最困难的方法。我对PS很熟悉,但不是专家。

$test2 = (select-string -path C:\error.txt -Pattern "Not ok").linenumber

所以要弄清楚我需要什么..

解析节点文件..找到下面不正常的行..如果是这样,将节点设置为变量...如果不正常,则继续到下一个节点。

感谢您的帮助

下面的示例 txt 文件

Node: Server
*********************

Line 1 ok
line 2 ok
line 3 ok
Line 4 Not ok
line 5 ok
line 6 ok
*********************

Node: Server2
*********************
Line 1 ok
line 2 ok
line 3 Not ok
Line 4 ok
line 5 ok
line 6 ok
*********************

最佳答案

$errorNodes = @()

Get-Content C:\temp\test.txt | ForEach-Object {
if ($_ -imatch 'Node: (.+)$') {
$node = $Matches[1]
}
if ($_ -imatch 'not ok') {
$errorNodes += $node
}
}

$errorNodes

说明

  1. Get-Content 逐行读取文件。
  2. 对于每一行,首先检查它是否是一个节点;如果是这样,请将 $node 变量设置为当前节点的名称。
  3. 然后检查该行是否与文本“not ok”匹配。如果是这样,请将节点名称添加到错误节点列表(数组变量$errorNodes

所以最后,$errorNodes 将包含有问题的节点。

关于parsing - 给定重复的部分,如何使用 Powershell 查找符合特定条件的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25319762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com