gpt4 book ai didi

powershell - 如果将字符串放在一个序列或另一个序列中,为什么使用Powershell 4.0在文本文件中搜索字符串会被忽略?

转载 作者:行者123 更新时间:2023-12-03 00:07:43 26 4
gpt4 key购买 nike

代码有效,因为result.txt包含WORD_2,PHRASE2,WORD和PHRASE的所有实例:

$output_file = ‘results.txt’
$listtomatch = @("WORD_2", "PHRASE2","WORD", "PHRASE")
select-string -Path filetosearchin.txt -Pattern $listtomatch -CaseSensitive | % { $_.Matches } | % { $_.Value }

代码无效,因为它仅返回WORD和PHRASE的所有实例,但不返回WORD_2或PHRASE2:
$output_file = ‘results.txt’
$listtomatch = @("WORD", "PHRASE","WORD_2", "PHRASE2")
select-string -Path filetosearchin.txt -Pattern $listtomatch -CaseSensitive | % { $_.Matches } | % { $_.Value }

字符串的顺序是否会干扰它们输入选择字符串的方式,从而产生不同的结果?

我曾期望上面的两个代码都能得到相同的结果:所有字符串的所有实例:WORD_2,PHRASE2,WORD和PHRASE

最佳答案

让PowerShell创建alternations(|)并还包括-AllMatches参数:

## Q:\Test\2019\07\31\SO_57297393.ps1
$listtomatch = @("WORD_2","PHRASE2","WORD","PHRASE")

Select-String -Path filetosearchin.txt -Pattern ($listtomatch -join '|') -CaseSensitive -AllMatches|
% { $_.Matches } | % { $_.Value }

使用输入文件:
> Get-Content .\filetosearchin.txt
1:"WORD_2","PHRASE2","WORD","PHRASE"
2:"PHRASE2","WORD","PHRASE","WORD_2"
3:"WORD","PHRASE","WORD_2","PHRASE2"
4:"PHRASE","WORD_2","PHRASE2","WORD"

该脚本产生:
> .\SO_57297393.ps1
WORD_2
PHRASE2
WORD
PHRASE
PHRASE2
WORD
PHRASE
WORD_2
WORD
PHRASE
WORD_2
PHRASE2
PHRASE
WORD_2
PHRASE2
WORD

关于powershell - 如果将字符串放在一个序列或另一个序列中,为什么使用Powershell 4.0在文本文件中搜索字符串会被忽略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57297393/

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