Select-String不适用于日志文件

时间:2017-10-22 15:29:26

标签: powershell

我有一些日志,我想选择一些字符串。我在一些测试notepad.txt文件上尝试了这个:

gci | Select-String -Pattern "Deleting" | group path | select name 

它工作得非常好。现在我想对我们的* .log文件做同样的事情,但屏幕上没有显示任何内容。我可以在记事本中打开日志文件而不会出现问题。我注意到,如果我跑:

Get-Content myLog.log

它返回:

0 0 : 0 1 : 3 9 . 0 5 3 [ I N T E R N A L . T ( 3 5 4 ) ] >   D e l e t i n g   f i l e   ' \ \ l e v i a t a n \ b a i x e s \ O F F S U M A R I D A

这些日志文件可能会导致get-content添加如此多的空格?在PowerShell中有一种方法可以删除所有空格吗?还有其他选择吗?

1 个答案:

答案 0 :(得分:2)

在我看来,您的日志文件是UTF-16编码而没有byte order mark(BOM)。除非BOM另有说明,否则Select-StringGet-Content都默认为ASCII / ANSI编码。您可以通过参数-Encoding

覆盖检测到的/默认编码
Get-ChildItem | Select-String -Pattern "Deleting" -Encoding unicode | ...