Powershell 拆分数组中的每个字符串

问题描述 投票:0回答:1

所以,我在谷歌或SO上没有看到任何对此有任何帮助的信息。

我有一个字符串数组,我想在数组中的每个字符串上运行

-split
并最终得到一个包含字符串数组的数组。

但是当我这样做时:

$Strings | % { $_ -split ($Sep) }

PS 将结果展平,最终得到一个字符串数组,其中包含每个

-split
的串联结果。

例如为此

$Strings = @("a b c", "d e f")
$Sep = " "
$Strings | % { $_ -split ($Sep) } 

我得到

@("a", "b", "c", "d", "e", "f")
,但我想要
@( @("a", "b", "c"), @("d", "e", "f") )
。我究竟哪里做得不对?

arrays string powershell
1个回答
0
投票

您可以使用

,
逗号运算符

$Strings = @('a b c', 'd e f')
$Sep = ' '
$result = $Strings | ForEach-Object { , ($_ -split $Sep) }
$result[0]
# a
# b
# c
$result[1]
# d
# e
# f

Write-Output -NoEnumerate

$Strings = @('a b c', 'd e f')
$Sep = ' '
$result = $Strings | ForEach-Object { Write-Output ($_ -split $Sep) -NoEnumerate }
$result[0]
# a
# b
# c
$result[1]
# d
# e
# f
© www.soinside.com 2019 - 2024. All rights reserved.