Hei*_*sen 1 powershell sort-object
我想对.txt文档进行排序,以便第一行保持在顶部,其余的按数字排序.
我目前有以下内容,但它删除了第一行,并且排序不正确,因为数字是例如72,2,51,100,201,5等等所以它将其分类为100,2,201, 5,51,72.
我希望它分类为2,5,51,72,100,201
$emptyLine = Get-Content C:\Path\Document.txt | Select-Object -Skip 1
$emptyLine | Sort-Object | Out-File C:\Path\Document.txt
Run Code Online (Sandbox Code Playgroud)
我知道这在Notepad ++中是可行的,但是不允许需要进行排序的机器安装任何新的东西.
如果对于任何解决方案,我都非常开放,这不需要我安装新的软件.
该机器是Windows 10 Pro x64.
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. 1Run Code Online (Sandbox Code Playgroud)
(作为HTML片段发布,使格式更漂亮)
利用多值赋值并将输出存储Get-Content在两个变量中,然后只对第二个变量进行排序:
$First,$Rest = Get-Content C:\Path\Document.txt
@($First; $Rest |Sort-Object) |Set-Content C:\Path\Document.txt
Run Code Online (Sandbox Code Playgroud)
在上面的场景中,PowerShell将第一行分配给$First其余部分$Rest
如果你需要Sort-Object按字符串属性的第一部分排序,就好像它是一个整数,你可以这样做:
@($First; $Rest |Sort-Object {(-split $_)[0] -as [int]}) |Set-Content C:\Path\Document.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |