位置: 编程技术 - 正文
推荐整理分享批处理命令教学之字符串排序(sort)(批处理命令教程 pdf),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:批处理命令教程,批处理命令教程 pdf,批处理文件命令大全,批处理命令教程 pdf,批处理常用命令,批处理命令是什么语言,批处理常用命令,批处理常用命令,内容如对您有帮助,希望把文章链接给更多的朋友!
帮助信息:
命令概括:
sort,意为“以……排序”。
/r,全英文reverse,意为“颠倒”。/+n,还是number,意为“数字”。/m,全英文memory,意为“内存”。/l,全英文locale,意为“场所”,引申为“区域设置”。/rec,全英文record,意为“记录”。/t,全英文temporary,意为“临时的”。/o,全英文output,意为“输出”。
参数详解:
1.不带任何参数的sort命令
不带任何参数的sort命令,比较第一个字符的大小(字母不区分大小写),按“顺序排列”输出(a-z,0-9)。
例如:
ip.txt
利用sort进行排序。代码:
结果:和ip.txt一摸一样,因为ip.txt中的单词第一个字符顺序都是按“a-z”排列的。
2.利用sort,按单词的第二个字符顺序排列
同样对ip.txt进行处理。
代码:
效果:
这一次的排序是按照第二个字符的“顺序排列”(a-z)进行排列的。
结合1、2节不难看出,其实sort ip.txt 的效果等同于 sort /+1 ip.txt。
3.倒序排列
既然可以,自然可以。sort命令也可以倒序排列并输出。
①.通常的倒序方法(按字母倒序)代码:
效果:
②.特殊的倒序方法(按文本倒序,由Crlf版主友情提供)
代码:
效果:同第一种方法。
说明:
ip.txt中最长的单词是“refrigerator”,合计有个字母,这里sort 比较第个字母的大小,但是所有的单词都没有个字母(最长的才),此时按文本倒序排列。
所以只要你将/+n中,n的值设置的足够大,此时按文本倒序输出。
由于开篇的ip.txt内容没设置好,导致按字母倒序和按文本倒序产生了相同的结果,事实上这是两种完全不同的排序方法。按字母倒序是根据字母规则(a-z,0-9)进行倒序排列,按文本倒序是将最后一行文本作为第一行,第一行作为最后一行(简而言之就是文本行颠倒)。
例子(由Crlf版主友情提供):
test.bat:
ip.txt:
结果:
4.将排序结果输出到文件
①.利用重定向符,将排序结果输出到文件代码:
效果:在当前文件夹中生成hello1.txt,内容为:
②.利用sort的/o参数,将排序结果输出到文件代码:
效果:在当前文件夹中生成hello2.txt,内容同hello1.txt。
两者的差别:
根据微软的机器翻译“指定输出文件比将同一文件作为标准输出重定向速度快”,也就是说/o参数比重定向符(>)快,这个不好实际测试,有这么个映象就可以了。
5.对/m,/t参数的一些说明
/m参数是用来指定参与排序的内存,换句话说就是“你分多少内存(单位kb)给sort命令排序”。
/t参数是用来指定缓存文件的目录,举个例子来说,我要处理8m的大文本,指定内存为kb,kb怎么装得下8m的文件?这时怎么办呢?——(按1m=kb算)先将kb装入内存,再将剩下的kb分次装入内存,缓存文件放在/t指定的目录中。
例如:
.txt是一个8m的文本(要做测试的同学,可以到网上下本小说)。代码:
说明:.txt是一本小说,用sort排序之后自然是“惨不忍睹”的,对于结果没有什么好说的,主要说说这行代码运行后产生的一些问题。
问题1.运行代码后,提出警告信息“警告: 做大量排序时使用重定向输出通常比直接指定输出文件名称来排序慢。”——这个前面说过了“/o参数比重定向符(>)快”。
问题2.运行代码后,在目录C:dcache中产生了一个以“srt”+进制随机数命名的.tmp文件,出现过几秒,后被系统删除(没用/t参数指定的目录时,默认缓存文件目录是%temp%)。
问题3.当我将/m指定的内存数kb变为kb(kb是sort命令默认的最小内存)时,竟然提示“没有足够的内存,无法完成排序。”
由问题引出的简单思考:
既然是简单思考,自然不会分析的太过深入。
问题1.如果说/o比重定向符(>)快,而且有时用重定向符(>)还会出现“警告”,那么完全可以舍弃重定向符(>),只要想输出排序结果就用/o参数。
问题2.缓存文件产生的原因是指定了内存的大小,不指定就不会出现,也就是说“不用/m参数就不会出现缓存文件,而不用/m参数,/t参数也没用”。
问题3.不指定用于排序的内存大小,就不会提示“内存不足”,那么不用/m参数不就好了。
总结:sort的/m,/t参数完全可以不用。估计这两个参数,是为了dos时代而准备的,现在的电脑内存——我这台“老爷机”都有1G的内存,实在想不出为了区区几十M的文件分配内存有什么意义。
6./rec参数(指定sort能处理的最大行)
这里的“最大行”,不是说文本中有多少行,而是说一行中最多可以含有多少字符数。
sort命令默认的文本最大行含有个字符(2的次幂),最多可以含有个字符。
这里设置了一个特殊的文本a.txt来加以说明。
a.txt中一共含有2行文本,每行文本含有个字符。
代码和结果:
没讲的内容,/l参数,这个是区域设置相关,我也没弄懂。
批处理命令教学之复合语句连接符(&、&&和||) 帮助信息:&[...]command1&command2用来分隔一个命令行中的多个命令。Cmd.exe运行第一个命令,然后运行第二个命令。&&[...]command1&&command2只有在符号&&前面的
批处理命令教学之管道符号(|) 管道符(|)的作用是将符号前的进程输出,当做符号后进程的输入。例如:有两条命令,dir/s/b/a和find".txt",第一条显示当前文件夹中的所有文件、文件
Windows7下获得System权限问题解决方法 Windows7下MS加强了权限的问题,但这个神秘的无处不在的system居然比administrator还大而又不能登录实在是让人不能理解,特别是很多的目录居然都要system的
标签: 批处理命令教程 pdf
本文链接地址:https://www.jiuchutong.com/biancheng/371686.html 转载请保留说明!友情链接: 武汉网站建设