我有一些日志,我想选择一些字符串。我在一些测试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中有一种方法可以删除所有空格吗?还有其他选择吗?
答案 0 :(得分:2)
在我看来,您的日志文件是UTF-16编码而没有byte order mark(BOM)。除非BOM另有说明,否则Select-String
和Get-Content
都默认为ASCII / ANSI编码。您可以通过参数-Encoding
:
Get-ChildItem | Select-String -Pattern "Deleting" -Encoding unicode | ...