当前位置: 首页 > news >正文

伍壹捌网站建设/制作网页

伍壹捌网站建设,制作网页,微网站建设高端网站定制,海南省城乡住房建设厅网站【sort 命令】sort 命令常用于字段排序。【常用选项】[html] view plaincopy用法:sort [选项]... [文件]...  或:sort [选项]... --files0-fromF 串联排序所有指定文件并将结果写到标准输出。 长选项必须使用的参数对于短选项时也是必需使用的。 …

【sort 命令】

sort 命令常用于字段排序。


【常用选项】

[html] view plaincopy
  1. 用法:sort [选项]... [文件]...  
  2.  或:sort [选项]... --files0-from=F  
  3. 串联排序所有指定文件并将结果写到标准输出。  
  4.   
  5. 长选项必须使用的参数对于短选项时也是必需使用的。  
  6. 排序选项:  
  7.   
  8.   -b, --ignore-leading-blanks   忽略前导的空白区域  
  9.   -d, --dictionary-order        只考虑空白区域和字母字符  
  10.   -f, --ignore-case             忽略字母大小写  
  11.   -g, --general-numeric-sort    按照常规数值排序  
  12.   -i, --ignore-nonprinting      只排序可打印字符  
  13.   -M, --month-sort              比较 (未知) < "一月" < ... < "十二月"  
  14.                                 在LC_ALL=C 时为(unknown) < `JAN' < ... < `DEC'  
  15.   -h, --human-numeric-sort    使用易读性数字(例如: 2K 1G)  
  16.   -n, --numeric-sort            根据字符串数值比较  
  17.   -R, --random-sort             根据随机hash 排序  
  18.       --random-source=文件      从指定文件中获得随机字节  
  19.   -r, --reverse                 逆序输出排序结果  
  20.       --sort=WORD               按照WORD 指定的格式排序:  
  21.                                         一般数字-g,高可读性-h,月份-M,数字-n,  
  22.                                         随机-R,版本-V  
  23.   -V, --version-sort            在文本内进行自然版本排序  
  24.   
  25. 其他选项:  
  26.   
  27.       --batch-size=NMERGE       一次最多合并NMERGE 个输入;如果输入更多  
  28.                                         则使用临时文件  
  29.   -c, --check, --check=diagnose-first   检查输入是否已排序,若已有序则不进行操作  
  30.   -C, --check=quiet--check=silent     类似-c,但不报告第一个无序行  
  31.       --compress-program=程序   使用指定程序压缩临时文件;使用该程序  
  32.                                         的-d 参数解压缩文件  
  33.       --files0-from=文件        从指定文件读取以NUL 终止的名称,如果该文件被  
  34.                                         指定为"-"则从标准输入读文件名  
  35.   -k, --key=位置1[,位置2]       在位置1 开始一个key,在位置2 终止(默认为行尾)  
  36.   -m, --merge                   合并已排序的文件,不再进行排序  
  37.   -o, --output=文件             将结果写入到文件而非标准输出  
  38.   -s, --stable                  禁用last-resort 比较以稳定比较算法  
  39.   -S, --buffer-size=大小        指定主内存缓存大小  
  40.   -t, --field-separator=分隔符  使用指定的分隔符代替非空格到空格的转换  
  41.   -T, --temporary-directory=目录        使用指定目录而非$TMPDIR 或/tmp 作为  
  42.                                         临时目录,可用多个选项指定多个目录  
  43.   -u, --unique          配合-c,严格校验排序;不配合-c,则只输出一次排序结果  
  44.   -z, --zero-terminated 以0 字节而非新行作为行尾标志  
  45.       --help            显示此帮助信息并退出  
  46.       --version         显示版本信息并退出  
  47.   
  48. POS 是F[.C][OPTS],F 代表域编号,C 是域中字母的位置,F 和C 均从1开始计数  
  49. 如果没有有效的-t 或-b 选项存在,则从前导空格后开始计数字符。OPTS 是一个或多个  
  50. 由单个字母表示的顺序选项,以此覆盖此key 的全局顺序设置。如果没有指定key 则  
  51. 将其整个行。  
  52.   
  53. 指定的大小可以使用以下单位之一:  
  54. 内存使用率% 1%,b 1、K 1024 (默认),M、G、T、P、E、Z、Y 等依此类推。  
  55.   
  56. 如果不指定文件,或者文件为"-",则从标准输入读取数据。  

*** 警告 ***
本地环境变量会影响排序结果。
如果希望以字节的自然值获得最传统的排序结果,请设置LC_ALL=C。


【使用说明】

1、sort 

比较原则是从首字符开始,依次按ASCII码值进行比较,最后将比较结果按升序输出。

创建一个测试文件 test.txt,内容:

[html] view plaincopy
  1. 6d7fce9fee471194aa8b5b6e47267f03  ./version.ini  
  2. 8c47b68c23994cf382bd12a3bd4a1fe8  ./plugin.conf  
  3. e45f64ed552ab0176be337ad77f3b3ae  ./start.sh  
  4. 6172fad14869bbb949ea1d60c4771f14  ./stop.sh  
  5. 8dd2db4b88727758bb0800c321bafc34  ./test_proc  
  6. 1e142f0d573c5891cc14d8864e073d53  ./test_proc.c  

执行命令sort 命令后,输出为

[html] view plaincopy
  1. # sort test.txt  
  2.   
  3. 1e142f0d573c5891cc14d8864e073d53  ./test_proc.c  
  4. 6172fad14869bbb949ea1d60c4771f14  ./stop.sh  
  5. 6d7fce9fee471194aa8b5b6e47267f03  ./version.ini  
  6. 8c47b68c23994cf382bd12a3bd4a1fe8  ./plugin.conf  
  7. 8dd2db4b88727758bb0800c321bafc34  ./test_proc  
  8. e45f64ed552ab0176be337ad77f3b3ae  ./start.sh  


2、-t 选项 和-k 选项 

[html] view plaincopy
  1. # sort -k 2 -t "." test.txt  
  2.   
  3. 8c47b68c23994cf382bd12a3bd4a1fe8  ./plugin.conf  
  4. e45f64ed552ab0176be337ad77f3b3ae  ./start.sh  
  5. 6172fad14869bbb949ea1d60c4771f14  ./stop.sh  
  6. 8dd2db4b88727758bb0800c321bafc34  ./test_proc  
  7. 1e142f0d573c5891cc14d8864e073d53  ./test_proc.c  
  8. 6d7fce9fee471194aa8b5b6e47267f03  ./version.ini  

sort -k 2 -t "." test.txt,根据符号“.”分割字符串,并以 分割后的test.txt 文件中的第2列进行排序。


3、-n 选项 

10比2用 sort 命令排序的时候,可能会出现10比较小的情况。这是因为排序程序将数字按字符来排序,排序程序会先比较1和2,显然1小,所以就将10放在2前面。这也是sort的一贯作风。 如果要改变这种排序方式,就要使用-n选项,指定以数值来排序。


4、-r 选项 

sort默认的排序方式是升序,如果想改成降序

[html] view plaincopy
  1. ]# sort -r -k 2 -t "." test.txt  
  2. 6d7fce9fee471194aa8b5b6e47267f03  ./version.ini  
  3. 1e142f0d573c5891cc14d8864e073d53  ./test_proc.c  
  4. 8dd2db4b88727758bb0800c321bafc34  ./test_proc  
  5. 6172fad14869bbb949ea1d60c4771f14  ./stop.sh  
  6. e45f64ed552ab0176be337ad77f3b3ae  ./start.sh  
  7. 8c47b68c23994cf382bd12a3bd4a1fe8  ./plugin.conf  


5、-o 选项 

[html] view plaincopy
  1. # sort -r -k 2 -t "." test.txt -o test.txt  
  2. # cat test.txt  
  3. 6d7fce9fee471194aa8b5b6e47267f03  ./version.ini  
  4. 1e142f0d573c5891cc14d8864e073d53  ./test_proc.c  
  5. 8dd2db4b88727758bb0800c321bafc34  ./test_proc  
  6. 6172fad14869bbb949ea1d60c4771f14  ./stop.sh  
  7. e45f64ed552ab0176be337ad77f3b3ae  ./start.sh  
  8. 8c47b68c23994cf382bd12a3bd4a1fe8  ./plugin.conf  


6、-f 选项 


将小写字母都转换为大写字母来进行比较,即忽略大小写 

在一个项目中,有过类似的经历:使用 php 的 exec() 函数执行命令:sort  -k 2 -t"."   结果是:

[html] view plaincopy
  1. 6d7fce9fee471194aa8b5b6e47267f03  ./VERSION.ini  
  2. 8c47b68c23994cf382bd12a3bd4a1fe8  ./plugin.conf  
  3. e45f64ed552ab0176be337ad77f3b3ae  ./start.sh  
  4. 6172fad14869bbb949ea1d60c4771f14  ./stop.sh  
  5. 8dd2db4b88727758bb0800c321bafc34  ./test_proc  
  6. 1e142f0d573c5891cc14d8864e073d53  ./test_proc.c  

但是在Linux中执行同样的命令,结果则是如同加上f 选项


[html] view plaincopy
  1. # sort -f -k 2 -t"." test.txt  
  2.   
  3. 8c47b68c23994cf382bd12a3bd4a1fe8  ./plugin.conf  
  4. e45f64ed552ab0176be337ad77f3b3ae  ./start.sh  
  5. 6172fad14869bbb949ea1d60c4771f14  ./stop.sh  
  6. 8dd2db4b88727758bb0800c321bafc34  ./test_proc  
  7. 1e142f0d573c5891cc14d8864e073d53  ./test_proc.c  
  8. 6d7fce9fee471194aa8b5b6e47267f03  ./VERSION.ini  

解决方法可以在php 中,使用 exec() 函数执行命令:sort  -f -k 2 -t"." 。

继续探讨上面的问题,怀疑是跟本地环境变量或者编码存在关系,测试一下:

[html] view plaincopy
  1. ~$ locale  
  2. LANG=en_US.UTF-8  
  3. LANGUAGE=en_US:  
  4. LC_CTYPE="en_US.UTF-8"  
  5. LC_NUMERIC="en_US.UTF-8"  
  6. LC_TIME="en_US.UTF-8"  
  7. LC_COLLATE="en_US.UTF-8"  
  8. LC_MONETARY="en_US.UTF-8"  
  9. LC_MESSAGES="en_US.UTF-8"  
  10. LC_PAPER="en_US.UTF-8"  
  11. LC_NAME="en_US.UTF-8"  
  12. LC_ADDRESS="en_US.UTF-8"  
  13. LC_TELEPHONE="en_US.UTF-8"  
  14. LC_MEASUREMENT="en_US.UTF-8"  
  15. LC_IDENTIFICATION="en_US.UTF-8"  
  16. LC_ALL=  

[html] view plaincopy
  1. ~$ sort -k 2 -t"." test.txt  
  2. 8c47b68c23994cf382bd12a3bd4a1fe8  ./plugin.conf  
  3. e45f64ed552ab0176be337ad77f3b3ae  ./start.sh  
  4. 6172fad14869bbb949ea1d60c4771f14  ./stop.sh  
  5. 8dd2db4b88727758bb0800c321bafc34  ./test_proc  
  6. 1e142f0d573c5891cc14d8864e073d53  ./test_proc.c  
  7. 6d7fce9fee471194aa8b5b6e47267f03  ./VERSION.ini  

修改一下编码方式

[html] view plaincopy
  1. ~$ export LC_ALL=zh_CN.UTF-8  
  2.   
  3. :~$ locale  
  4. LANG=en_US.UTF-8  
  5. LANGUAGE=en_US:  
  6. LC_CTYPE="zh_CN.UTF-8"  
  7. LC_NUMERIC="zh_CN.UTF-8"  
  8. LC_TIME="zh_CN.UTF-8"  
  9. LC_COLLATE="zh_CN.UTF-8"  
  10. LC_MONETARY="zh_CN.UTF-8"  
  11. LC_MESSAGES="zh_CN.UTF-8"  
  12. LC_PAPER="zh_CN.UTF-8"  
  13. LC_NAME="zh_CN.UTF-8"  
  14. LC_ADDRESS="zh_CN.UTF-8"  
  15. LC_TELEPHONE="zh_CN.UTF-8"  
  16. LC_MEASUREMENT="zh_CN.UTF-8"  
  17. LC_IDENTIFICATION="zh_CN.UTF-8"  
  18. LC_ALL=zh_CN.UTF-8  
  19.   
  20. ~$ sort -k 2 -t"." test.txt  
  21. 6d7fce9fee471194aa8b5b6e47267f03  ./VERSION.ini  
  22. 8c47b68c23994cf382bd12a3bd4a1fe8  ./plugin.conf  
  23. e45f64ed552ab0176be337ad77f3b3ae  ./start.sh  
  24. 6172fad14869bbb949ea1d60c4771f14  ./stop.sh  
  25. 8dd2db4b88727758bb0800c321bafc34  ./test_proc  
  26. 1e142f0d573c5891cc14d8864e073d53  ./test_proc.c  

可见本地环境变量中指定的编码方式确实对 sort 结果存在影响。至于php为什么会出现这种问题,将继续探究......



7、-c 选项 

使用-r选项例子中执行后的文件

[html] view plaincopy
  1. # cat test.txt  
  2. 6d7fce9fee471194aa8b5b6e47267f03  ./version.ini  
  3. 1e142f0d573c5891cc14d8864e073d53  ./test_proc.c  
  4. 8dd2db4b88727758bb0800c321bafc34  ./test_proc  
  5. 6172fad14869bbb949ea1d60c4771f14  ./stop.sh  
  6. e45f64ed552ab0176be337ad77f3b3ae  ./start.sh  
  7. 8c47b68c23994cf382bd12a3bd4a1fe8  ./plugin.conf  


[html] view plaincopy
  1. # sort -c test.txt  
  2. sort:test.txt:2:无序: 1e142f0d573c5891cc14d8864e073d53  ./test_proc.c  

检查到文件乱序,输出第一个乱序的行的相关信息,并返回1  


8、-C 选项 

检查文件是否已排好序,如果是乱序则不输出内容,仅是返回1  


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liuruiqun/article/details/52279098
个人分类: Linux
想对作者说点什么? 我来说一句
http://www.jmfq.cn/news/5092525.html

相关文章:

  • wordpress 内嵌网页/百度怎么优化网站排名
  • 专门做正品的网站手机版/网站快速被百度收录
  • 网站建设方案的企业/惠州seo网站推广
  • 网站建设包括网页设计/杭州seo论坛
  • 做电子网站/成都专门做网络推广的公司
  • 酒店网站开发协议/电商网站设计模板
  • 兰州网站建设公/福州seo排名优化公司
  • 东莞个人免费建网站/舆情分析系统
  • 融水做的比较好的网站有哪些/外链交易平台
  • 网站设计策划书 模板/网店推广方案范文
  • dz 一步一步教你做网站/免费网站代理访问
  • 网站建设自/企业网站推广方案
  • 网站建设及网站推广/百度联盟个人怎么接广告
  • 网站后台做图片尺寸是多大/网上推广赚钱项目
  • 网站怎么做301跳转/免费网站推广网站不用下载
  • 北京网站建设哪家好/百度指数pc版
  • 手工活接单在家做有正规网站吗/seo是谁
  • 如何用ps做网站/广告视频
  • wordpress 做公司网站/关键词搜索站长工具
  • 关于网站开发的开题报告/有哪些推广平台和渠道
  • 翔安区建设网站/免费的网络推广渠道
  • 个人网站做淘宝客商城/好消息tvapp电视版
  • 国内公司网站需要备案/网络推广企划
  • 同样也是做严选的网站/360建站和凡科哪个好
  • 门窗企业网站建设/上海企业seo
  • 万年网站建设/成都网络推广公司
  • 地推/郑州关键词seo
  • 国内用react做的网站/网站优化排名软件推广
  • 有的网站为什么打不开怎么回事/天津关键词优化专家
  • 汕头教育学会网站建设/片多多可以免费看电视剧吗