我有一个填充了这些字符串的数组(SHA256校验和和用分号分隔的相对路径):
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
没有标题和内容,唯一的是分号(;
)字符,用于分隔字段。
答案 0 :(得分:5)
将数组放在变量中:
$a | sort {$_ -replace "(.*;\./)", ''}
答案 1 :(得分: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