从另一个字符串变量中减去一个字符串变量

时间:2018-10-03 15:44:37

标签: powershell

如何从$b中删除$a中的项目?

$a = "aa","bb","cc","dd","ee"

$b = "bb","dd"

您知道一个好的解决方案吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

Compare-Object命令是执行此操作的最简单方法,尽管它不是很可靠,但如果用于生产,则可能需要考虑更周全的解决方案。

$c = Compare-Object -ReferenceObject $a -DifferenceObject $b | ? SideIndicator -eq '<=' | Select -Expand InputObject

我认为另一种非常相似但可读性更高的方法是:

$c = $a | ? {$_ -notin $b}

另一种方法是使用Group-Object命令,并选择唯一的条目,但这将包括$b中的条目,而不是$a中的条目。

$c = $a+$b | Group-Object | ? Count -eq 1 | Select -Expand Group

所有这些方法将输出:

aa
cc
ee