2012-06-15 52 views
1

我有填充有(以分号分隔的SHA256校验和相对路径)等这些字符串的数组:PowerShell的排序字符串数组,其中每个元件由两个字段组成,由第二场

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855;./zzz.txt 
d0c4c3e65c450251e44ec41c3c6ee0ea456d02bd74f041c9299934176ec325e6;./kkk.xlsx 
9a1d469cdc7c2072b19a7e483a818c5e4e9de070298c60b34de29930e7b79209;./árvíztűrő tükörfúrógép/kkk - Shortcut.lnk 

我想要在第二列中对这些行进行排序。所以数组排序应该是这样的:

9a1d469cdc7c2072b19a7e483a818c5e4e9de070298c60b34de29930e7b79209;./árvíztűrő tükörfúrógép/kkk - Shortcut.lnk 
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855;./zzz.txt 
d0c4c3e65c450251e44ec41c3c6ee0ea456d02bd74f041c9299934176ec325e6;./kkk.xlsx 

没有头之类的东西,唯一的一点是分号(;)字符其delimites领域。

回答

5

随着一个变量数组:

$a | sort {$_ -replace "(.*;\./)", ''} 
2

转换内容以CSV格式,解析由分号分隔符的内容,添加页眉和排序Path属性的输出:

@" 
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855;./zzz.txt 
d0c4c3e65c450251e44ec41c3c6ee0ea456d02bd74f041c9299934176ec325e6;./kkk.xlsx 
9a1d469cdc7c2072b19a7e483a818c5e4e9de070298c60b34de29930e7b79209;./árvíztűrő tükörfúrógép/kkk - Shortcut.lnk 
"@ | ConvertFrom-Csv -Header Checksum,Path -Delimiter ';' | Sort-Object Path 


Checksum                 Path                  
--------                 ----                  
9a1d469cdc7c2072b19a7e483a818c5e4e9de070298c60b34de29930e7b79209   ./árvíztűrő tükörfúrógép/kkk - Shortcut.lnk        
d0c4c3e65c450251e44ec41c3c6ee0ea456d02bd74f041c9299934176ec325e6   ./kkk.xlsx                 
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855   ./zzz.txt