我有这个数组:
[
"org-dummyemail-123-AccountName",
"org-dummyemail-123-Email",
"org-dummyemail-123-PAT",
"org-dummyemail-123-PATName",
"org-dummyemail-123-PATValidTo",
"org-dummyemail1-joemarmoto-AccountName",
"org-dummyemail1-joemarmoto-Email",
"org-dummyemail1-joemarmoto-PAT",
"org-dummyemail1-joemarmoto-PATName",
"org-dummyemail1-joemarmoto-PATValidTo"
]
然后把它整理出来,做两个像这样的独立数组
[
"org-dummyemail-123-AccountName",
"org-dummyemail-123-Email",
"org-dummyemail-123-PAT",
"org-dummyemail-123-PATName",
"org-dummyemail-123-PATValidTo"
]
[
"org-dummyemail1-joemarmoto-AccountName",
"org-dummyemail1-joemarmoto-Email",
"org-dummyemail1-joemarmoto-PAT",
"org-dummyemail1-joemarmoto-PATName",
"org-dummyemail1-joemarmoto-PATValidTo"
]
希望你的帮助!谢谢:)
6条答案
按热度按时间epfja78i1#
简单数组过滤:
gcuhipw92#
一个稍微不同的方法是使用
Group-Object
cmdlet在计算属性上分组.你没有指定要排序的确切部分-虚拟电子邮件或它后面的名称-所以我使用了虚拟电子邮件后面的部分.这个结果给你一个数组的集合,有一个名字[计算的属性]和一个组[匹配那个计算的属性的项目]。你可以单独寻址它们或者使用它们来创建新的数组。
输出
hmmo2u0o3#
将您的输入视为Json对象(来自here字符串)脚本
-
/破折号分隔的部分构建key计算属性。
具有以下输出:
jdg4fx2g4#
下面是一个使用regex来确定输入字符串的哪一部分分组的版本:
注意:这与Lee's的方法基本相同;只不过我们没有使用
split
来获取单个段,而是使用regex来捕获字符串中与我们的键相关的所有部分...关于这个有用的函数,请参阅MS Docs以获得更多信息。dzhpxtsq5#
使用$PSitem变量
看看这里:https://blogs.msdn.microsoft.com/mvpawardprogram/2013/04/15/working-with-the-new-psitem-automatic-variable-in-windows-powershell-3-0/
从该网站:获取有关_Automatic_Variables的帮助-ShowWindow
在“查找”框中键入“psitem”以突出显示包含此单词的所有文本:
正如我们所看到的,$PSitem和$_是一样的。引入$PSitem变量的目的是让包含“管道中的当前对象”的代码更容易阅读和理解。
答案与Gert Jan Kraaijeveld几乎相同,但解释了$PSitem的作用以及信息的来源。
j2datikz6#
同样的想法,但有一个哈希表: