[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 Five66 于 2024-10-7 00:23 编辑

回复 30# Five66


   
改正下,sort /+5功能能搞错了,换成下面的($l=4中的4就是,从0开始)
  1. powershell -c "$l=4;[io.streamreader]::new([console]::OpenStandardInput(),[text.encoding]::utf8).readtoend() -split '\r?\n' |where{$_}|group {$_.length -gt $l} |foreach {if($_.name -eq $true){$t=$_}else{$f=$_}};$f.group|sort;$t.group |sort {$_.substring($l,$_.length-$l)}"
复制代码

TOP

回复 28# aloha20200628


    非常感谢,成功了。
    就是对长度没到指定位置的字符串不知道是采用什么顺序排的,我试着在文本中添加了 0-9 和 a-z 的单字符,完全看不出是按什么顺序排的。
    不过没关系,我一般不会碰到这种情况,真遇到了就人工处理一下。
    等将来powershell懂得多一点后,估计可以写个脚本,先判断,再排序,慢慢来吧。
    现次感谢。

TOP

回复 29# ppll2030


        非常感谢,也成功了。
        这种方法和前面 sort {$_[2..$_.length]} 相比,如果一行字符长度不到指定位置的话,会有一个错误提示,但不影响排序。
        估计这两种方法可以应用于不同场景,当然,我现在还想不到,慢慢学吧。
        再次感谢。

TOP

本帖最后由 killer3k 于 2024-10-7 20:08 编辑

回复 31# Five66


    对于我来说,内容太深奥了。
    实际上,我是看了你说的用Powershell后才算是正式开始接触powershell的,也就这两天的事。以前大概也就是在powershell中试着输入过dir,不过那肯定不算数。
    你写的内容我先保存了。大概能猜出来用了循环、条件语句,和输入、数组之类的有关。感觉很有用,将来肯定用得上,所以先保存下来再慢慢研究。
    非常感谢。

    对了,要是没你的指导,我还没真想到去用powershell,因为一直觉得这个太慢了。
    这两天试了一下,感觉虽然运行速度不怎么样,但功能还挺强大的。
    再次感谢。

TOP

回复 7# buyiyang


    懂了懂了,这几天反复试验,感觉弄懂  /L[OCALE] locale 的意思了。
    如果不加 “ /L "C" ” 的话,排序顺序就是依据操作系统的本地设置,在中文操作系统上就是按拼音或笔划来排序(根据设置不同)。
    如果加了 “ /L "C" ” 的话,则会去掉所有本地化设置,排序不会依照本地化设置来。大概和 LC_ALL=C 中的C一样,其中“C”代表使用ANSI C的标准环境,即不使用任何特定的本地化设置。
    终于弄懂了,非常感谢。

TOP

非常感谢各位的帮助,现在总算是解决在命令行下怎么对文本排序的问题了,而且有了一个学习方向。

用powershell来对文本排序,虽然速度不怎么样,但总算是解决了有没有的问题,至于好不好的问题,只能等我将来多学点后再完善了。

总结一下个人看法:
如果不需要在命令行下操作的话,就去找一个能够对unicode格式的文本中的汉字根据拼音来排序的文本编辑软件吧。
如果需要在命令行下操作的话:
1、ansi文本可以用CMD的sort,功能虽然不是很多,但速度最快。如果需要更多的功能的话,可以用前面
有网友推荐的sort76.exe。
sort76.exe 是GnuWin32套件中从linux移植到windows的一个小命令行工具,可以在本论坛的第三方命令板块中找到下载位置,安全性应该还是有保障的。查看帮助是 “sort76.exe --help”。
2、如果是unicode文本,如果没有对汉字根据拼音来排序的要求的话,可以用 sort76.exe。
3、如果是unicode文本,如果需要对汉字根据拼音来排序的话,那就用powershell吧,缺点就是对较大的文件排序的速度比较慢。
当然,如果自己会编程的话,就自己写程序吧。仰望!
再次感谢各位的帮助。

TOP

至于怎么把powershell和vim结合起来,因为两者我都是刚接触,只能瞎想一下。

写一个vim脚本(怎么写,过一段时间再学,先把我需要的常用的vim基本操作熟悉一下再说吧),
然后用vim命令把选中的内容保存到一个临时文件,
用powershell对这个临时文件处理,
最后用vim命令把这个临时文件的内容写回文件。

不管怎么样,总算是有了一个学习方向吧。

TOP

返回列表