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. SQLyog破解版:SQLyog MySQL GUI 11.2.4-0 Ultimate中文版 带序列号【转载】

    SQLyog 是一个易于使用的.快速而简洁的图形化管理MYSQL数据库的工具,目前(2013年9月11日)最新版为:SQLyog Ultimate – MySQL GUI v11.24,本站已亲测比较 ...

  2. poj 3984 迷宫问题 bfs

    学会这道水题之后我懂得了不少哈,首先水题也能学到不少知识,尤其像我这样刚入门的小菜鸟,能学到一些小技巧. 然后就是可以从别人的代码里学到不一样的思路和想法. 这题就是求最短的路径,首先想到就是用bfs ...

  3. HOG特征-理解篇

    网上去找关于HOG的资料,发现理解性的较少,并且较为冗长,为方便大家理解便自己写了篇,希望能对奋斗在特征提取第一线的同志们有所帮助: HOG即histogram of oriented gradien ...

  4. 《Java并发编程实战》第十五章 原子变量与非堵塞同步机制 读书笔记

    一.锁的劣势 锁定后假设未释放.再次请求锁时会造成堵塞.多线程调度通常遇到堵塞会进行上下文切换,造成很多其它的开销. 在挂起与恢复线程等过程中存在着非常大的开销,而且通常存在着较长时间的中断. 锁可能 ...

  5. Android Touch事件原理加实例分析

    Android中有各种各样的事件,以响应用户的操作.这些事件可以分为按键事件和触屏事件.而Touch事件是触屏事件的基础事件,在进行Android开发时经常会用到,所以非常有必要深入理解它的原理机制. ...

  6. IOS开发之——颜色设置

    颜色设置: 指定RGB,參数是:红.绿.黄.透明度,范围是0-1 + (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(C ...

  7. careercup-C和C++ 13.4

    13.4 深拷贝和浅拷贝有什么区别,如何使用? 解答 浅拷贝并不复制数据,只复制指向数据的指针,因此是多个指针指向同一份数据. 深拷贝会复制原始数据,每个指针指向一份独立的数据.通过下面的代码, 可以 ...

  8. linux高级命令组合

    ps -auxww | grep httpd 快速找到正在运行的apache服务安装目录 find / -path  'sina_app_v3*' 快速找到根目录下面的sina_app_v3目录 fi ...

  9. 聊聊Iconfont

    一.前言 说起Iconfont,对大多数人来说可能不是什么新的技术了,现在好多大网站已经开始使用Iconfont.博主今天主要是简单说一下它的使用方法,聊聊使用它时可能遇到哪些坑,不熟悉的同学可以简要 ...

  10. ASP.NET会员注册登录模块(MD5加密,Parameters防止SQL注入,判断是否注册)

    MD5加密,Parameters防止SQL注入: protected void btnLog_Click(object sender, EventArgs e)     {         //获取验 ...