我正在尝试使用 powershell 扫描日志文件并查找特定模式的出现。到目前为止,我使用正则表达式进行搜索的测试都失败了,但我注意到了一些我认为可能是原因的事情。在有问题的日志文件上运行 get-content 会带回文件,但会在 notepad++ 中显示时将单行包装到多行。
无论如何要阻止powershell包装文本,还是硬编码到窗口是powershell中行长的限制这一事实?
我正在尝试使用 powershell 扫描日志文件并查找特定模式的出现。到目前为止,我使用正则表达式进行搜索的测试都失败了,但我注意到了一些我认为可能是原因的事情。在有问题的日志文件上运行 get-content 会带回文件,但会在 notepad++ 中显示时将单行包装到多行。
无论如何要阻止powershell包装文本,还是硬编码到窗口是powershell中行长的限制这一事实?
Out-File
可能会切线,默认情况下它会使用主机窗口的宽度写入行,默认为80
. 也许尝试使用Set-Content
或给Out-File
一个-Width
足够大的。
行在控制台中换行的事实仅仅是因为它显示文本的方式。它不会影响正则表达式。
话虽如此,您不需要使用Get-Content
正则表达式搜索。Select-String
应该能够自己完成这项工作。
应用程序和操作系统通常用一个或两个控制字符表示换行符,通常是回车(反引号 r)和换行符(反引号 n)。
尝试通过显式添加-delimiter
参数后跟这些控制字符之一来拆分您的内容。
get-content file.log -delimiter "`n"