2012-06-15 63 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