在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