gpt4 book ai didi

arrays - 如何将批量文本文件中的选择字符串输出保存到阵列Powershell

转载 作者:行者123 更新时间:2023-12-03 00:44:56 25 4
gpt4 key购买 nike

我正在尝试从文本文件中批量提取子字符串,并将这些子字符串保存到数组中。我尝试了以下变化。这会将所有选定的字符串输出到屏幕,但仅将最终输出保存到变量。有没有一种方法可以模仿==运算符的功能,使所有项目都存储在数组中?

$FILES = ls "*.txt"
foreach($f in $FILES){
$in=Get-Content $f
$in | Foreach { Select-String -Path "$f" -Pattern "Ad ID" -outvariable
array1 }}

万一我的策略被误导了,将子字符串拉入数组的总体目的是使这些文本文件的多个单独的子字符串具有多个数组。然后,我将这些值连接到一个csv中。我试图拉出元素而不是重新排列文本文件,因为文本文件中的子字符串的顺序不同。例:

txt文件一:
Ad Id: xxxx
Ad Text: blah blah
Ad placement: spaceship

txt文件二:
Ad Id: yyyy
Ad placement: zoo
Ad Text: blah blah

最终期望的结果(除了元素的顺序,这部分正常工作)

CSV文件
xxxx, spaceship, blah blah
yyyy, zoo, blah blah

最佳答案

试试这个:

$files      = ls "*.txt"
$dictionary = @{}

foreach($f in $files) {
$in = Get-Content $f
$in.Split([Environment]::NewLine) | ForEach-Object {
$key,$value = $_.Split(':')
$dictionary[$key] = $value
}
$dictionary['Ad Id'] + ', ' + $dictionary['Ad placement'] + ', ' + $dictionary['Ad Text'] | Out-File -FilePath '.\results.csv' -Append
}

排序输出:
$files      = ls "fil*.txt"
$dictionary = @{}
[System.Collections.Generic.List[String]]$list = @()

foreach($f in $files) {
$in = Get-Content $f
$in.Split([Environment]::NewLine) | ForEach-Object {
$key,$value = $_.Split(':')
$dictionary[$key] = $value
}
[void]$list.Add( $dictionary['Ad Id'] + ', ' + $dictionary['Ad placement'] + ', ' + $dictionary['Ad Text'] )
}
[void]$list.Sort()
$list | Out-File -FilePath '.\results.csv' -Append

关于arrays - 如何将批量文本文件中的选择字符串输出保存到阵列Powershell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50428088/

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