仅使用powershell,对300行的文本文件进行排序,首先按字符串长度排序,然后在达到该长度后,将它们全部按字母顺序设置

我正在尝试将其作为 powershell 中的单行代码来执行,以便我可以继续根据检查字符串检查这些字符串。我遇到的麻烦是,无论我做什么,我都只能通过字符串长度进行设置。

以下尝试未能获得所需的结果。一个文本很好,另一个成功。我也试过用管道输入它们,但我相信它们都不接受管道输入。

感谢您的帮助,因为我是 powershell 的新手。

PS C:UsersIEUser> Get-Content Desktop/dict.txt | Sort-Object 
PS C:UsersIEUser> Get-Content Desktop/dict.txt | Sort-Object -Property Length 

回答

在这里,尝试使用和不使用{ $_ }🙂

$toSort = @'
fffffffffffffff
bbbbbbbbbbbbbbb
zzzzzzzzzzzzzzzzzzzz
cccccccccccccccccccc
xxxxxx
eeeeee
ooooo
aaaaa
zzz
eee
iiiiiiii
aaaaaaaa
'@ -split 'r?n'

$toSort | Sort-Object Length,{ $_ }

感谢Mathias指出这一点,我以前使用{ $_[0] }它只会对每行的第一个字符进行排序。


包括实际答案应该如何:

Get-Content Desktop/dict.txt |
Sort-Object -Property Length,{ $_ } |
Out-File path/to/sortedDict.txt


以上是仅使用powershell,对300行的文本文件进行排序,首先按字符串长度排序,然后在达到该长度后,将它们全部按字母顺序设置的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>