gpt4 book ai didi

parsing - powershell 和字符串从非结构化文本到 hashtab

转载 作者:行者123 更新时间:2023-12-03 01:18:55 25 4
gpt4 key购买 nike

我试图找到从这些输出中找到两个变量的最佳解决方案:

Backup   server1_incr       Completed  incr  1/15/2014 6:00:06 PM     0:00     0:04   0.84 1 0  0  19672 100% 2014/01/15-10
Backup server2_incr Completed incr 1/15/2014 6:00:06 PM 0:00 0:04 0.84 1 0 0 19672 100% 2014/01/15-10
Backup vea server3_d4d Completed incr 1/15/2014 6:00:06 PM 0:00 0:04 0.84 1 0 0 19672 100% 2014/01/15-10
Backup ae server4011_d2d Completed incr 1/15/2014 6:00:06 PM 0:00 0:04 0.84 1 0 0 19672 100% 2014/01/15-10
Backup server6_incr Completed incr 1/15/2014 6:00:06 PM 0:00 0:04 0.84 1 0 0 19672 100% 2014/01/15-9

我每行只需要两个项目 - 从 2 列(server1_incr;ae server4011_d2d...)到最后一列(2014/01/15-10;2014/01/15-9)结束。
解析行字符串后,将值存储在 hashtab 中以进行另一个处理:
    key                 value
server1_incr 2014/01/15-10
server2_incr 2014/01/15-10
ae server4011_d2d 2014/01/15-10

任何的想法?两晚不 sleep ,不知道后,我没电了。谢谢

睡一小时是个好主意:) 现在还有几分钟,我有代码-我知道,不好...但是对于基础...
$srvIDht = @{}

$inputData = Get-Content "c:\scripts\DPout"
foreach ($line in $inputData) {
$inline = $line

([regex]::match($inline,"(?<=Backup)[^/]+(?=Completed)").Value).ToString().Trim() | foreach { $srv = ($_) }
([regex]::match($inline,"(?<=%\s).*").Value).ToString().Trim() | foreach { $bID = ($_) }

$srvIDht.$srv += @( "$bID" )
}

最佳答案

这是一个使用正则表达式的版本,并保持哈希表与输入的顺序相同。如果您没有使用至少版本 3 的 powershell,请删除第一行和第三行中的 [ordered] 标签:

#requires -version 3.0

$lines = get-content "F:\scripts\text2ht\datafile"
$hashTable = [ordered]@{}

foreach ( $line in $lines ) {
if ($line -cmatch '^Backup\s+(.+?)\s+Completed.*%\s+(.*?)$') {
$key = $matches[1]
$value = $matches[2]
$hashTable.Add( $key, $value )
}
}
$hashTable

这看起来非常像omnirpt 的输出(尽管我的服务器上的间距不同)。如果您想在备份未成功完成的情况下捕获 SessionID,您可以将 cmatch 更改为如下所示:
'^Backup\s+(.+?)\s+(?:Completed|Failed|In Progress).*%\s+?(.*?)\s*$'

在我的测试用例中,它捕获了 Completed、Completed/Errors、Failed 和 In Progress 的状态。

关于parsing - powershell 和字符串从非结构化文本到 hashtab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21267232/

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