例如:sample.txt包含:
John Doe data Jane Doe data
输出将为:
Doe Doe
我试过(Get-Content sample.txt).Split(' ')[1],但它不起作用,因为它只打印第一行的第二个单词(数组的第二个元素)。输出量:
(Get-Content sample.txt).Split(' ')[1]
Doe
rxztt3cl1#
您需要在Get-Content读取的每一行 * 上调用.Split()(以及结果中的索引)*,例如使用内部.ForEach()方法:
Get-Content
.Split()
.ForEach()
(Get-Content sample.txt).ForEach({ $_.Split(' ')[1] })
如果在一行中有 * 多个 * 空格分隔单词,则可以改用PowerShell的-split * 运算符 * 的一元形式:
-split
(Get-Content sample.txt).ForEach({ (-split $_)[1] })
使用管道和ForEach-Objectcmdlet 的流替代方法:
ForEach-Object
Get-Content sample.txt | ForEach-Object { $_.Split(' ')[1] }
至于你试过什么:
[1]
1条答案
按热度按时间rxztt3cl1#
您需要在
Get-Content
读取的每一行 * 上调用.Split()
(以及结果中的索引)*,例如使用内部.ForEach()
方法:如果在一行中有 * 多个 * 空格分隔单词,则可以改用PowerShell的
-split
* 运算符 * 的一元形式:使用管道和
ForEach-Object
cmdlet 的流替代方法:至于你试过什么:
.Split()
调用被应用于Get-Content
返回的行数组的 * 每一行 *。.Split()
调用依次返回一个数组。[1]
索引只被应用 * 一次 *,即应用到这个平面数组,并且只返回它的第二个元素(只返回 first 行的第二个单词)。