Вы можете использовать Get-Content
, пропустить заголовок, а затем сделать некоторые трюки для перестройки таблицы, но вы также можете рассмотреть возможность использования ConvertFrom-SourceTable
из PowerShellГалерея для преобразования вашей таблицы непосредственно в объекты:
$List = Get-Content C:\Path\Document.txt | ConvertFrom-SourceTable
К сожалению, числа в первом столбце выглядят выровненными по левому краю, если они выровнены по правому краю (как в окончательных результатах этого ответа),командлет ConvertFrom-SourceTable
автоматически оценил бы первый столбец 'No
' в числа.
Это означает, что вам нужно будет преобразовать первый столбец в целые числа самостоятельно, чтобы иметь возможность отсортировать их, как предлагается.Вы можете сделать это, используя Select-Object
и создав вычисляемое свойство:
Select-Object @{n='No'; e={[Int]$_.No}}, Tool_Name, Tool_Part
После этого вы можете просто использовать sort-Object
для его сортировки:
Sort-Object No
Составление примера:
ConvertFrom-SourceTable '
No Tool_Name Tool_Part
72 10 1 9. 1
43 36 3 29. 1
102 34 1 1.7 1
600 33 1 3. 1
76 3 1 5.3 1
75 3 1 5.5 1
251 2 3 3. 1
73 10 1 5.3 1
50 36 3 15.9 1
64 2 1 6. 1
' | Select-Object @{n='No'; e={[Int]$_.No}}, Tool_Name, Tool_Part | Sort-Object No
Этот пример приведет к:
No Tool_Name Tool_Part
-- --------- ---------
43 36 29. 1
50 36 15.9 1
64 2 6. 1
72 10 9. 1
73 10 5.3 1
75 3 5.5 1
76 3 5.3 1
102 34 1.7 1
251 2 3. 1
600 33 3. 1
Поскольку неясно, является ли столбец между Tool_Name
и Tool_Part
принадлежит к любому из столбцов (поскольку Tool_Part
может быть выровнен по левому или правому краю), вы можете предоставить линейку для ConvertFrom-SourceTable
самостоятельно, чтобы уладить это:
ConvertFrom-SourceTable -Ruler '--- ----------- ---------' '
No Tool_Name Tool_Part
72 10 1 9. 1
43 36 3 29. 1
102 34 1 1.7 1
600 33 1 3. 1
76 3 1 5.3 1
75 3 1 5.5 1
251 2 3 3. 1
73 10 1 5.3 1
50 36 3 15.9 1
64 2 1 6. 1
' | Select-Object @{n='No'; e={[Int]$_.No}}, Tool_Name, Tool_Part | Sort-Object No
Результат:
No Tool_Name Tool_Part
-- --------- ---------
43 36 3 29. 1
50 36 3 15.9 1
64 2 1 6. 1
72 10 1 9. 1
73 10 1 5.3 1
75 3 1 5.5 1
76 3 1 5.3 1
102 34 1 1.7 1
251 2 3 3. 1
600 33 1 3. 1