gpt4 book ai didi

powershell - 在 powershell 中解析结构化文件 (FIX 4.4)

转载 作者:行者123 更新时间:2023-12-05 01:23:11 25 4
gpt4 key购买 nike

我需要在 powershell 中解析结构化文件(FIX 协议(protocol) 4.4)。结构是这样的

20220606-21:10:21.930 : 8=FIX.4.49=209 35=W34=35 49=FIXDIRECT.FT 52=20220606-21:10:21.925 56=MM_EUR_FIX_QS 55=US30 262=96 268=2 269=0 270=32921.6 271=2000000 299=16ynjsz-16ynjsz5qCaA 269=1 270=32931.4 271=2000000 299=16ynjsz-16ynjsz5qCaA 10=048

我只需要选择标签后面的特定值。我需要第一个值(时间戳),直到没有标签号的冒号,然后需要选择特定标签号后面的值。例如标签值 55、270 和 271(此处存在多个 270 和 271 值)

我能够使用 """=" 作为分隔符的简单有序方法进行解析

$contents = Get-Content FIX.log
foreach($line in $contents) {
$s = $line.split("= ")
write-host $s[0] $s[17] $s[25] $s[27] $s[33] $s[35]
}

但是我更喜欢使用标签号来查明值,因为文件中有一些行不符合相同的内容。

结果应该是这样的

20220606-21:10:21.930 US30 32921.6 2000000 32931.4 2000000

最佳答案

合并 -split , -match , 和 -replace如下:

# Sample line that simulates your Get-Content call.
$content = '20220606-21:10:21.930 : 8=FIX.4.49=209 35=W34=35 49=FIXDIRECT.FT 52=20220606-21:10:21.925 56=MM_EUR_FIX_QS 55=US30 262=96 268=2 269=0 270=32921.6 271=2000000 299=16ynjsz-16ynjsz5qCaA 269=1 270=32931.4 271=2000000 299=16ynjsz-16ynjsz5qCaA 10=048'

foreach ($line in $content) {

# Split into fields, by " " or " : "
$first, [array] $rest = $line -split ' (?:: )?'

# Extract the tokens of interest:
# * Use the first one as-is
# * Among the remaining ones, use -match to filter in only
# those with the tag numbers of interest, then use -replace
# on the results to strip the tag number plus the separator ("=")
# from each.
$tokensOfInterest =
, $first + (($rest -match '^(?:55|270|271)=') -replace '^.+=')

# Output the resulting array as a single-line, space-delimited
# list, which is how Write-Host stringifies arrays.
# Note: Do NOT use Write-Host to output *data*.
Write-Host $tokensOfInterest

}

这会产生您问题中的样本输出,即:

20220606-21:10:21.930 US30 32921.6 2000000 32931.4 2000000

关于powershell - 在 powershell 中解析结构化文件 (FIX 4.4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72756597/

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