批处理命令教学之字符串排序(sort)
帮助信息:
SORT [/R] [/+n] [/M kilobytes] [/L locale] [/REC recordbytes]
[[drive1:][path1]filename1] [/T [drive2:][path2]]
[/O [drive3:][path3]filename3]
/+n 指定开始每个比较的字符号码 n。/+3 说明每个
比较应从每行的第三个字符开始。少于 n 个字符
的行排在其他行之前。按默认值,从每行的第一
个字符开始比较。
/L[OCALE] locale 用指定的区域设置替代系统默认区域设置。
""C"" 区域设置产生最快的排序顺序并且是当前
的唯一其他选择。排序总是不分大小写的。
/M[EMORY] kilobytes 指定用于排序的主内存量,单位为 KB。
最小内存量总是 160 KB。如果指定内存大小,
无论主内存的可用量是多少,指定的内存量会
全部用于排序。
要取得最佳性能,通常不指定内存大小。按默认
值,如果达到默认最大内存值,排序会一次完成
(非临时文件);否则,排序会分两次完成(没有
完全排序的数据存储在临时文件中);用于排序
和合并的内存量相等。如果输入和输出都是文
件,默认最大内存量为可用主内存的 90%;
否则,为主内存的 45%。
/REC[ORD_MAXIMUM] characters 指定记录中的最大字符数量
(默认值为 4096,最大值为 65535)。
/R[EVERSE] 颠倒排序顺序,即,从 Z 到 A,再从 9 到 0。
[drive1:][path1]filename1 指定要排序的文件。如果没有指定,则排序标准
输入。指定输入文件比将同一个文件重定向为标
准输入快。
/T[EMPORARY]
[drive2:][path2] 指定保留排序工作存储的目录路径,以防主内
存无法容纳数据。默认值是使用系统临时目录。
/O[UTPUT]
[drive3:][path3]filename3 指定在哪个文件中储存经过排序的输入。
如果没有指定,数据会被写入标准输出。指定
输出文件比将标准输出重定向到同一个文件快。
命令概括:
sort,意为“以……排序”。
/r,全英文reverse,意为“颠倒”。
/+n,还是number,意为“数字”。
/m,全英文memory,意为“内存”。
/l,全英文locale,意为“场所”,引申为“区域设置”。
/rec,全英文record,意为“记录”。
/t,全英文temporary,意为“临时的”。
/o,全英文output,意为“输出”。
参数详解:
1.不带任何参数的sort命令
不带任何参数的sort命令,比较第一个字符的大小(字母不区分大小写),按“顺序排列”输出(a-z,0-9)。
例如:
ip.txt
apple
believe
change
desktop
everything
flight
ground
hello
ignore
joke
knowledge
little
memory
normal
outside
Police
quickly
refrigerator
smell
technology
until
violin
water
xenophobia
yellow
zero
利用sort进行排序。
代码:
C:\Users\HELLOW~1\Desktop>sort ip.txt
结果:
和ip.txt一摸一样,因为ip.txt中的单词第一个字符顺序都是按“a-z”排列的。
2.利用sort,按单词的第二个字符顺序排列
同样对ip.txt进行处理。
代码:
C:\Users\HELLOW~1\Desktop>sort /+2 ip.txt
效果:
water
technology
refrigerator
believe
hello
yellow
memory
xenophobia
zero
desktop
ignore
change
violin
little
flight
smell
knowledge
until
joke
Police
normal
apple
ground
quickly
outside
everything
这一次的排序是按照第二个字符的“顺序排列”(a-z)进行排列的。
结合1、2节不难看出,其实sort ip.txt 的效果等同于 sort /+1 ip.txt。
3.倒序排列
既然可以123,自然可以321。sort命令也可以倒序排列并输出。
①.通常的倒序方法(按字母倒序)
代码:
sort /r ip.txt
效果:
zero
yellow
xenophobia
water
violin
until
technology
smell
refrigerator
quickly
Police
outside
normal
memory
little
knowledge
joke
ignore
hello
ground
flight
everything
desktop
change
believe
apple
②.特殊的倒序方法(按文本倒序,由Crlf版主友情提供)
代码:
sort /+13 ip.txt
效果:
同第一种方法。
说明:
ip.txt中最长的单词是“refrigerator”,合计有12个字母,这里sort 比较第13个字母的大小,但是所有的单词都没有13个字母(最长的才12),此时按文本倒序排列。
所以只要你将/+n中,n的值设置的足够大,此时按文本倒序输出。
由于开篇的ip.txt内容没设置好,导致按字母倒序和按文本倒序产生了相同的结果,事实上这是两种完全不同的排序方法。按字母倒序是根据字母规则(a-z,0-9)进行倒序排列,按文本倒序是将最后一行文本作为第一行,第一行作为最后一行(简而言之就是文本行颠倒)。
例子(由Crlf版主友情提供):
test.bat:
@echo off
sort /r ip.txt
echo;
sort /+1000 ip.txt
pause
ip.txt:
123
abc
测试
@#¥
ABC
结果:
测试
abc
ABC
123
@#¥
ABC
@#¥
测试
abc
123
请按任意键继续. . .
以上是 批处理命令教学之字符串排序(sort) 的全部内容, 来源链接: utcz.com/z/350045.html