在Powershell中,如何搜索文本文件中的每行以获取模式数组? Select-string的模式可以接受数组,但是如果找到数组中的任何字符串,它将返回一个真值。如果在该行中找到数组中的所有字符串,我需要它返回true(或实际上是行)。谢谢。PowerShell搜索字符串数组模式
4
A
回答
3
顶部匹配字符串数组对抗模式的阵列我相信你需要这样的事:
$patterns = @(...)
Get-Content sample.txt | % {
$count = 0
foreach ($p in $patterns) {
if ($_ -match $p) { $count++ }
}
if ($count -eq $patterns.Length) { $_ }
}
或像这样:
$patterns = @(...)
$content = Get-Content sample.txt
foreach ($line in $content) {
$count = @($patterns | ? { $line -match $_ }).Length
if ($count -eq $patterns.Length) { $line }
}
2
把我的头
Get-Content file.txt |
Where-Object {$_ -match $ptrn1 -and $_ -match $ptrn2 -and $_ -match $ptrn3}
1
另一种可能性:
$patterns = 'abc','def','ghi'
$lines = 'abcdefghi','abcdefg','abcdefghijkl'
:nextline foreach ($line in $lines)
{foreach ($pattern in $patterns)
{if ($line -notmatch $pattern){continue nextline}
}$line}
abcdefghi
abcdefghijkl
只要任何模式不匹配,就会放弃进一步处理线。
这工作对整个网上收集一次,而这样做一个foreach:
$patterns = 'abc','def','ghi'
$lines = 'abcdefghi','abcdefg','abcdefghijkl'
foreach ($pattern in $patterns)
{$lines = $lines -match $pattern}
$lines
abcdefghi
abcdefghijkl
替换您的获取内容的测试文字来填充$行。
相关问题
- 1. 如何搜索字符串/字符数组中的模式?
- 2. Powershell字符串搜索
- 3. 字符串搜索数组
- 4. 搜索字符数组串
- 5. 按字符串或模式搜索数组键字
- 6. 字符数组搜索子字符串
- 7. 在PowerShell中排除搜索模式与选择字符串
- 8. 红宝石通过搜索模式的字符串数组
- 9. 搜索字符串中的模式
- 10. 搜索字符串模式c#
- 11. 模式的Perl搜索字符串:*@enron.com
- 12. 在字符串中搜索模式
- 13. 在线模式搜索字符串集
- 14. 搜索模式在字符串
- 15. 在PowerShell中搜索颜色字符串
- 16. Powershell的搜索字符串Containig $
- 17. 在PHP中搜索字符串格式数组中的数字?
- 18. 线性字符串数组的搜索
- 19. Android搜索字符串数组
- 20. Excel VBA CountIF搜索字符串数组
- 21. 在Java中搜索字符串数组?
- 22. 搜索多个字符串数组
- 23. 二进制搜索字符串数组
- 24. 在字符串数组内搜索
- 25. 线性搜索数组字符串
- 26. Java搜索2D字符串数组
- 27. 搜索的数组,字符串
- 28. PHP - 字符串搜索数组
- 29. 搜索数组中的字符串
- 30. 的Python - 搜索字符串数组
计数功能在这里得到了这个工作。非常感谢。 – atownson