に相当する PowerShell を探していgrep --file=filename
ます。ご存じない場合はgrep
、filename はテキスト ファイルで、各行には照合する正規表現パターンが含まれています。
明らかな何かが欠けているのかもしれSelect-String
ませんが、このオプションはないようです。
に相当する PowerShell を探していgrep --file=filename
ます。ご存じない場合はgrep
、filename はテキスト ファイルで、各行には照合する正規表現パターンが含まれています。
明らかな何かが欠けているのかもしれSelect-String
ませんが、このオプションはないようです。
の-Pattern
パラメーターはSelect-String
、パターンの配列をサポートしています。だからあなたが探しているものは次のとおりです:
Get-Content .\doc.txt | Select-String -Pattern (Get-Content .\regex.txt)
doc.txt
これは、すべての正規表現(1行に1つ)を使用してテキストファイルを検索しますregex.txt
PS) new-alias grep findstr
PS) C:\WINDOWS> ls | grep -I -N exe
105:-a--- 2006-11-02 13:34 49680 twunk_16.exe
106:-a--- 2006-11-02 13:34 31232 twunk_32.exe
109:-a--- 2006-09-18 23:43 256192 winhelp.exe
110:-a--- 2006-11-02 10:45 9216 winhlp32.exe
PS) grep /?
私はgrepに慣れていませんが、Select-Stringを使用すると次のことができます:
Get-ChildItem filename.txt | Select-String -Pattern <regexPattern>
Get-Content を使用してそれを行うこともできます。
(Get-Content filename.txt) -match 'pattern'
しかし、select-Stringにはこのオプションがないようです。
正しい。PowerShell は、*nix シェルのツールセットのクローンではありません。
ただし、そのようなものを自分で構築することは難しくありません。
$regexes = Get-Content RegexFile.txt |
Foreach-Object { new-object System.Text.RegularExpressions.Regex $_ }
$fileList | Get-Content | Where-Object {
foreach ($r in $regexes) {
if ($r.IsMatch($_)) {
$true
break
}
}
$false
}
多分?
[regex]$regex = (get-content <regex file> |
foreach {
'(?:{0})' -f $_
}) -join '|'
Get-Content <filespec> -ReadCount 10000 |
foreach {
if ($_ -match $regex)
{
$true
break
}
}