PowerShell 技能连载 - 分割文本行(第 3 部分)
在上一个技能中,我们将一大块多行文本拆分为单独的行,并删除了所有空行。
然而,当一行不是真正的空,而是包含空格(空格或制表符)时,它仍然会被输出:
1 | # $data is a single string and contains blank lines |
在这里,我们在 “Server2” 正上方的行中添加了几个空格(当然,在列表中看不到)。以下是执行结果:
00 Server1
01
02 Server2
03 Cluster4
由于我们要在任意数量的 CR 和 LF 字符处拆分,因此空格会破坏该模式。
与其将正则表达式变成一个更复杂的野兽,不如为这些事情附加一个简单的 Where-Object
来进行精细修饰:
1 | # $data is a single string and contains blank lines |
[string]::IsNullOrEmpty()
代表我们所追求的情况,因此符合条件的行被 Where-Object
删除。结果就是所需要的理想结果:
00 Server1
01 Server2
02 Cluster4
PowerShell 技能连载 - 分割文本行(第 3 部分)
http://blog.vichamp.com/2021/10/08/turning-text-into-individual-lines-part-3/