Fir*_*ser 2 windows powershell command-line
我有一个很大的日志文件(.log)。我试图找到一些需要突出显示的关键字,以便我可以更快地跳过日志中的其他行。但是,我不想只过滤选择字符串,而是突出显示选择字符串。另外,我对Powershell一无所知,到目前为止,我通过谷歌搜索得到了以下命令。
C:\users\proto> cat txtlog.log select-string "Valid" | write-host -foregroundcolor red
Run Code Online (Sandbox Code Playgroud)
它不会输出我想要的内容,因为它只返回红色的“有效”行,而不返回其他行。
从这里添加格式颜色函数:
function Format-Color([hashtable] $Colors = @{}, [switch] $SimpleMatch) {
$lines = ($input | Out-String) -replace "`r", "" -split "`n"
foreach($line in $lines) {
$color = ''
foreach($pattern in $Colors.Keys){
if(!$SimpleMatch -and $line -match $pattern) { $color = $Colors[$pattern] }
elseif ($SimpleMatch -and $line -like $pattern) { $color = $Colors[$pattern] }
}
if($color) {
Write-Host -ForegroundColor $color $line
} else {
Write-Host $line
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,将输出通过管道传输到 Format-Color:
cat txtlog.log | Format-Color @{ 'Valid' = 'Red' }
Run Code Online (Sandbox Code Playgroud)
带有“Valid”一词的行将以红色显示,而其他行将以默认颜色显示。
| 归档时间: |
|
| 查看次数: |
5204 次 |
| 最近记录: |