Я новичок в силовой оболочке.custom sorting in powershell
Моя проблема заключается в том, что у меня есть имена файлов в следующем формате:
[ignore-prefix]-[important-middle]-[ignore-suffix]-[name-with-digits]
Мне нужно сортировать в соответствии со следующими правилами: первый по средней части, а затем по имени, в естественном порядке (т.е. foobar10> foobar2) , Я не знаю значения префикса, но я знаю разделитель (тире).
поэтому моя первая попытка, естественно:
filelist | Sort-Object -property @{Expression=`
{$_.FullName.SubString($_.FullName.IndexOf("-")+1)}}
Это проблема, что суффикс влияет на порядок (игнорировать-ааа-1ignore-wname) сортируют, прежде чем игнорировать-ааа-2ignore-aname), так что:
$filelist | Sort-Object -property @{Expression=`
{$_.FullName.SubString($_.FullName.IndexOf("-")+1,`
$_.FullName.SubString($_.FullName.IndexOf("-")+1).IndexOf("-"))}}
Хорошо, это сортируется по середине, но уже небезопасно. Если я добавлю натуральный сорт, это будет еще хуже. Какой элегантный способ сделать это?
«$ part1, $ part2, $ part2» должно быть «$ part1, $ part2, $ part3» спасибо! – DennyRolling
Да, я тоже это заметил. Исправлена. –