当我使用 select-string
时,我几乎总是希望我的输出对齐,即文件名、行号和找到的文本应该都对齐成列。视觉上更不容易分散注意力,通常可以更容易地发现差异。作为一个微不足道的例子,我在这里在文件中间注入了一个额外的空格:
PS> Get-ChildItem *.cs | Select-StringAligned -pattern override
---
FileWithQuiteALengthyName.cs : 34: protected override void Foo()
ShortName.cs : 46: protected override void Bar()
MediumNameFileHere.cs :123: protected override void Baz()
---
不幸的是,Select-String
不能做到这一点。 实际上,它会给出以下结果 - 你能发现这里多了一个空格吗?
PS> Get-ChildItem *.cs | Select-String -pattern override
---
FileWithQuiteALengthyName.cs:34: protected override void Foo()
ShortName.cs:46: protected override void Bar()
MediumNameFileHere.cs:123: protected override void Baz()
---
有没有办法强制Select-String
对齐其输出列?
编辑:
哎呀!我忘记了一个重要的部分:如果可能,我还想包括-Context
参数,这样就可以获取匹配项之前和之后的任意行。