在PowerShell中在新行上用空格分隔字符串

我正在使用PowerShell脚本,在该脚本中,我使用以下格式输入长字符串(来自CSV文件):


第一组名称

第二组名称

第三组名称

...


我正在尝试与解析


($entry.'Group Name').split("`n ") | %{

    if ($_) {

        # Do something with the group name

        $_

    }

}

我想得到像这样的输出:


第一组名称

第二组名称

第三组名称

...


但结果如下:


集团

的一个

名称

两个

...


精慕HU
浏览 1318回答 3
3回答

蓝山帝景

中的string参数String.Split()是要分割的字符列表,而不是要匹配然后分割的字符序列。您现有的代码将在换行符上分割,并在空间上分割。如果只想在换行符上分割,请使用:.split("`n")如果要在换行符的字符序列上进行分割,然后紧跟一个空格,则可以使用Regex.Split():[Regex]::Split($entry.'Group Name',"`n ") | ...或者,您可以使用-split运算符,该运算符还会按字符串而不是字符列表进行拆分:$entry.'Group Name' -split "`n "

湖上湖

如果我没看错,则您的呼叫同时.Split传入`n了空格字符。因此,您实际上是在要求PowerShell将一个类似的字符串"Group One Name"转换成一个类似这样的列表@("Group", "One", "Name")。如果$entry是单个记录,并且您对“组名”,“组二名”和“组三名”中的每一个都运行一次此行,那么您可能根本不需要调用.Split-只需使用$entry.'Group Name'直。
打开App,查看更多内容
随时随地看视频慕课网APP