我正在尝试使用 Powershell 在每行最后一次出现分隔符 (/
) 时拆分字符串数组。一个示例输入数组:
classes/CaseHandler.cls
email/Insurance_Templates/Policy_Amend_Approval_Request.emailcode here
运行命令 $arr -split '/'
给出以下结果:
classes
CaseHandler.cls
email
Insurance_Templates
Policy_Amend_Approval_Request.email
这对于类文件来说很好,因为我需要第一行的文件夹路径和第二行的文件名。但是,输入中有许多文件具有更深的文件路径。我正在寻找一种方法来仅在 /
字符的最后一次出现时拆分数组的每一行。所需的输出是:
classes
CaseHandler.cls
email/Insurance_Templates
Policy_Amend_Approval_request.email
我尝试了许多使用子字符串方法的方法,但不知道如何将其合并到逐行拆分数组中。对此的任何帮助将不胜感激。
最佳答案
由于您正在处理文件名,因此您应该使用 Split-Path
cmdlet:
PS> $paths = "classes/CaseHandler.cls", `
"email/Insurance_Templates/Policy_Amend_Approval_Request.emailcode"
获取目录部分:
PS> $paths | Split-Path
classes
email\Insurance_Templates
获取文件部分:
PS> $paths | Split-Path -Leaf
CaseHandler.cls
Policy_Amend_Approval_Request.emailcode
然后将它们组合在一起以获得您所追求的格式:
PS> $paths | % { Split-Path $_ ; Split-Path -Leaf $_ }
classes
CaseHandler.cls
email\Insurance_Templates
Policy_Amend_Approval_Request.emailcode
关于arrays - Powershell在每行字符的最后一个实例上拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39307321/