http://blog.sina.com.cn/s/blog_6d09b5750100x6zg.html

首先是shell排序实现多列排序,这里添加竖线以作分割,如下文件test:

a|gggg|4|7
b|fff2|3|2
c|gea0|6|12
d|kkkg|4|11
e|uity|6|4
f|fger|1|3
g|wabg|7|5
h|zhag|8|7
i|hang|3|3
j|lang|2|15
k|long|5|7
$cat test |sed 's/|/ /g' |sort -k3,3n -k4,4nr
当然这里可以不用将竖线去掉,直接用-t选项排序原文,需将竖线转义,用"\|":
$cat test |sort -t\| -k3,3n -k4,4nr
我们可以不用管道符号:
$sort -t\| -k3,3n -k4,4nr test
在文件中按列排序需要有间隔,所以用sed将文件中竖线"|"输出转换为空格,sort中"-k3,3n"是按第三列(key)和顺序排序(numeric-sort),"-k4,4nr"是按第四列逆序(reverse)输出,结果类似sql语句中的order by row3 ASC,row4 DESC,即优先对row1排序,在结果中,若row3相同,则在相同的基础上,对row4进行排序,这里第三、四列分别是升序和降序,结果为
f fger 1 3
j lang 2 15
i hang 3 3
b fff2 3 2
d kkkg 4 11
a gggg 4 7
k long 5 7
c gea0 6 12
e uity 6 4
g wabg 7 5
h zhag 8 7
其他排序
$cat test |sed 's/|/ /g' |sort -k3,3nr -k4,4nr
$cat test |sed 's/|/ /g' |sort -k3,3n -k4,4n
应该很容易分析吧
通过在程序中访问shell命令可获得文件内容(如php中用popen函数,结合fgets函数可获得数据,还可用explode进行分割得到数组,便可在web中访问),就如同从数据获得数据一样有了数据,可是数据库可通过limit lines1,lines2进行分页,那文件呢?
我们可以通过shell命令中的tail和head来完成,-n为指定显示行数,如下10行,+1为从第一行开始,如果没有"+"号,则为文件尾最后一行。这样就通过tail和head的结合实现分页呐,一个显示10行的首页:
$tail -n +1 |head -n 10
如第3页:
$tail -n +31 |head -n 10
至于每页显示多少(即命令中的10),随便写就是

转载 shell sort的更多相关文章

  1. [转帖]linux Shell sort按照指定列排序

    linux Shell sort按照指定列排序 https://blog.csdn.net/weixin_38308151/article/details/80760133 kubectl get p ...

  2. 希尔排序( Shell Sort)

    原文地址:http://www.stoimen.com/blog/,在此感谢作者! Insertion sort is a great algorithm, because it’s very int ...

  3. [算法] 希尔排序 Shell Sort

    希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进.该方法又称缩小增量排序,因DL.Shell于1959年提出而得名. 希尔排序实质上是一种分组插入方法.它的基本思想是: ...

  4. - Shell - sort处理大文件(页 1) - ChinaUnix.net

    - Shell - sort处理大文件(页 1) - ChinaUnix.net sort处理大文件

  5. 排序算法--希尔排序(Shell Sort)_C#程序实现

    排序算法--希尔排序(Shell Sort)_C#程序实现 排序(Sort)是计算机程序设计中的一种重要操作,也是日常生活中经常遇到的问题.例如,字典中的单词是以字母的顺序排列,否则,使用起来非常困难 ...

  6. 希尔排序Shell sort

    希尔排序Shell Sort是基于插入排序的一种改进,同样分成两部分, 第一部分,希尔排序介绍 第二部分,如何选取关键字,选取关键字是希尔排序的关键 第一块希尔排序介绍 准备待排数组[6 2 4 1 ...

  7. 算法Sedgewick第四版-第1章基础-2.1Elementary Sortss-004希尔排序法(Shell Sort)

    一.介绍 1.希尔排序的思路:希尔排序是插入排序的改进.当输入的数据,顺序是很乱时,插入排序会产生大量的交换元素的操作,比如array[n]的最小的元素在最后,则要经过n-1次交换才能排到第一位,因为 ...

  8. 排序 —— 希尔排序(Shell sort)

    希尔排序(Shell sort)的名称源于它的发明者 Donald Shell,该算法是冲破二次时间屏障(冒泡和插入排序,基于相邻元素的交换)的第一批算法.希尔排序改进了冒泡和插入排序的相邻元素才进行 ...

  9. 【算法】希尔排序(Shell Sort)(四)

    希尔排序(Shell Sort) 1959年Shell发明,第一个突破O(n2)的排序算法,是简单插入排序的改进版.它与插入排序的不同之处在于,它会优先比较距离较远的元素.希尔排序又叫缩小增量排序. ...

随机推荐

  1. 关于java.util.Properties读取中文乱码的正确解决方案(不要再用native2ascii.exe了)

    从Spring框架流行后,几乎根本不用自己写解析配置文件的代码了,但近日一个基础项目(实在是太基础,不能用硕大繁琐的Spring), 碰到了用java.util.Properties读取中文内容(UT ...

  2. WebView的应用 持续积累

    在我的项目中载入网页时我们会用到WebView这个控件,关于这个控件的相关的比較有用的API在这里记录一下. 第一 webview 设置javascript可用,  mWebView = (WebVi ...

  3. 面试题总结之JAVA

    JAVA 1. what is thread safe? 线程安全就是说多线程访问同一代码,不会产生不确定的结果.编写线程安全的代码是低依靠线程同步.线程安全: 在多线程中使用时,不用自已做同步处理线 ...

  4. eclipse启动不了报错java was started but returned exit code=13

    http://zhidao.baidu.com/question/1367307106041927459.html http://zhidao.baidu.com/question/570567914 ...

  5. Linux中的终端、控制台、tty、pty等概念

    参考:http://news.newhua.com/news1/program_language/2010/623/10623141048745773199BCF0CFH6AKB9930IGCFKHB ...

  6. Model

    using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace iFlytekDemo ...

  7. android 开源 OCR 项目 及手写识别

    http://blog.csdn.net/archfree/article/details/6023676 1)一个为Android平台,将识别由手机的相机拍摄的图像文本应用程序. http://co ...

  8. APUE(3)——文件I/O

    大多数情况下,我们都会利用Standard I/O Library来进行I/O操作,而这一章所讲的I/O是UNIX系统直接提供的I/O操作,且大多是Unbuffered I/O,即每一次读或写都会出现 ...

  9. PHP自动化测试

    参考网址: 1. 基于Jenkins 实现php项目的自动化测试.自动打包和自动部署 2.  PHP Jenkins,参考:http://jenkins-php.org/ 3.安装PHP_CodeSn ...

  10. JS学习笔记——标准对象

    一.对象 在js中万物皆对象. 二.对象类型 number.string.boolean.undefined.function.object等 用typeof来获取对象的类型 如: alert( ty ...