如何在 PowerShell 中从数组中删除空行?
您是否希望从 PowerShell 数组中删除空行?在本 PowerShell 教程中,我将解释如何在 PowerShell 中从数组中删除空行。
要从 PowerShell 中的数组中删除空行,您可以使用带有条件的Where-Object cmdlet 来过滤掉空字符串或仅包含空格的字符串。例如,$array=$array | Where-Object { $_.Trim() -ne ” } 将从 $array 中删除所有空白行。此方法检查每个元素,修剪所有空格,并确保数组中仅保留非空字符串。
在 PowerShell 中从数组中删除空行
数组是一种可以存储项目集合的数据结构。在 PowerShell 中,数组可以保存任何类型的项,包括字符串、整数,甚至其他数组。数组对于存储和操作数据集非常有用。
数组中的“空行”通常由空字符串表示,可以表示为 "" 或仅由空格、制表符或换行符等空白字符组成的字符串。正确识别这些对于确保将它们从 PowerShell 阵列中删除非常重要。
现在,让我们看看在 PowerShell 中从数组中删除空行的 3 种方法。我使用 Visual Studio Code 执行的所有脚本。
方法 1:使用Where-Object Cmdlet
从数组中删除空行的最简单方法之一是使用 PowerShell 中的 Where-Object cmdlet。此 cmdlet 允许您根据返回 True 或 False 的脚本块过滤掉项目。
以下是从 PowerShell 数组中删除空行的完整示例。
# Create an array with blank lines
$arrayWithBlanks = @("Line1", "", "Line2", " ", "Line3")
# Remove the blank lines
$cleanArray = $arrayWithBlanks | Where-Object { $_.Trim() -ne "" }
# Display the clean array
$cleanArray在上面的示例中,$_ 表示数组中的每个项目,.Trim() 方法用于删除任何前导或尾随空白字符。比较 -ne "" 检查修剪的项目是否不是空字符串。
您可以在下面的屏幕截图中查看输出:
方法 2:使用 foreach 循环
在 PowerShell 中删除空行的另一种方法是使用 foreach 循环迭代数组中的每个项目并将非空项目收集到新数组中。
这是完整的 PowerShell 脚本。
# Create an array with blank lines
$arrayWithBlanks = @("Line1", "", "Line2", " ", "Line3")
# Create an empty array to hold non-empty lines
$cleanArray = @()
# Loop through each item and add non-empty lines to the clean array
foreach ($line in $arrayWithBlanks) {
if ($line.Trim() -ne "") {
$cleanArray += $line
}
}
# Display the clean array
$cleanArray此方法使您可以更好地控制该过程,并且对于初学者来说更容易理解,因为它分解了过滤数组的步骤。查看下面的屏幕截图以了解输出:
方法 3:使用带有 -match 运算符的正则表达式
PowerShell 还支持正则表达式,可用于使用 -match 运算符来识别和删除空行。
以下是如何使用正则表达式从 PowerShell 数组中删除空行的完整示例。
# Create an array with blank lines
$arrayWithBlanks = @("Line1", "", "Line2", " ", "Line3")
# Use regex to remove blank lines
$cleanArray = $arrayWithBlanks | Where-Object { $_ -match "\S" }
# Display the clean array
$cleanArray在此示例中,\S 是匹配任何非空白字符的正则表达式模式。对于至少包含一个非空白字符的任何字符串,-match 运算符都会返回 True,从而有效地过滤掉空白行。
这是下面屏幕截图中的输出。
结论
在 PowerShell 中从数组中删除空行可以使用各种方法来完成,例如 Where-Object cmdlet 简单明了,foreach 循环提供清晰的逻辑和控制,以及常规的表达式提供了强大的模式匹配功能。
在此 PowerShell 脚本教程中,我解释了如何使用各种方法和示例从 PowerShell 中的数组中删除空行。


