`
jishublog
  • 浏览: 870598 次
文章分类
社区版块
存档分类
最新评论

Linux下sort命令

 
阅读更多

前言

排序是大家写代码最长遇见的问题,稍微有基础的在短时间内都能写出快排,归并,插入,堆排等各种排序算法,但是linux平时操作,让你分析日志,你不可能对在shell脚本里现写一个排序算法,这时awk+sort的作用就体现出来了,用awk主要是获取所需的字段(ps:这里不做详细解释),然后管道给sort进行排序


材料

创建示例文件的脚本:

#!/bin/bash

fruits=(a b c d e f g h i j k l m n o p q i s t u v w x y z) 
arrlen=${#fruits[*]}
len=5
file="/home/wzy/test/sort.txt"

for i in `seq 1 50`
do
	ip=192.168.1.$i

	name=""
	for ((j=0;j<$len;j++))
	do
		offset=`expr $RANDOM % $arrlen`
		name=$name${fruits[$offset]}
	done

	str=$i" "$ip" "$name

	echo $str >> $file
done

示例文件截图:




sort使用

sort的基本工作原理:

sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,也就是c中的strcmp函数,最后将他们升序输出



sort的-u(--unique)选项

它的作用很简单,就是在输出行中去除重复行



sort的-r(--reverse)选项

sort默认的排序方式是升序,如果想改成降序,加上-r选项即可



sort的-n(--numberic-sort)选项

默认情况下,如果按照strcpy排序,会出现10小于2的情况,懂strcpy比较机制也就不需要我多解释了,不懂的自己去google吧,例如当我们按照第一个字段来排序时,会出现如下情况:



如果我们想就是按照数字大小进行排序,则需要告诉sort,因此需要-n参数



sort的-t(--field-separator)选项和-k(--key)选项

刚才对于sort.txt处理,我们是用awk来获取所需字段,其实sort本身提供了这个功能,用-t参数来指定字段分隔符,用-k指定第几个字段,但是我更喜欢awk,因为awk更方便做一些预处理工作




后记

工作中掌握一点linux的奇技淫巧还是很方便的!

分享到:
评论

相关推荐

    linux sort命令的用法

    本文档详细的介绍了linux下sort命令的详细用法

    linux下uniq和sort命令用法详解.docx

    linux下uniq和sort命令用法详解.docx

    linux下uniq和sort命令用法.docx

    linux下uniq和sort命令用法.docx

    LINUX处理文本命令

    LINUX处理文本命令 处理文本和文本文件的命令 一. sort 文件排序, 通常用在管道中当过滤器来使用. 这个命令可以依据指定的关键字或指定的... 这个命令经常出现在sort命令的管道后边. 四. expand, unexpand ... ...

    linux sort命令参数及用法详解.docx

    linux sort命令参数及用法详解.docx

    ubuntu/linux下实现自己的命令

    具体命令:DIR(my_ls), RD(my_rd),CD,MD(my_md), DEL,MOVE(my_move),REN(my_ren),XCOPY, PROMPT,SORT(sort),TYPE(my_type),COPY(my_copy),命令格式可参照 Windows 的 CMD.EXE 或 MS-DOS 提供的命令; 设计命令的...

    操作系统接口:兼容Unix/Linux命令接口

    目标:为Windows操作系统建立一个兼容Unix命令的命令接口,实现命令包括ls,cat,cp,mv,md,rd,cd,sort,more命令。 环境:使用CodeBlock开发(g++编译) 效果:尚未发现BUG 优点:代码可读性高、比较精简、错误处理...

    linux进阶版命令详解

    对使用linux的新手来说,是linux一些常用命令的一些合集,有兴趣的朋友可以看一下 1、awk详解.txt 2、crontab定时器.txt 3、sed详解.txt 4、sort-cut-wc详解.txt

    Linux网络操作系统基础:文件处理wc、sort和diff命令.pptx

    Linux网络操作系统基础:文件处理wc、sort和diff命令.pptx

    sort命令的k选项大讨论

    sort命令的k选项大讨论,最详细的Sort命令介绍。

    一道题理解Linux中sort命令的多个参数

    今天小编就为大家分享一篇关于一道题理解Linux中sort命令的多个参数,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    linux 核心命令源码

    linux 核心命令源码(cp mv cat chgrp chown cut date df du echo env expand expr find force fs group head hostname join kill link ls mkdir mv nice od paste printf ptx rm selinux seq sleep sort split stat...

    Linux关于sort命令的高级用法

     但是使用sort按多个列值排列,同时使用tab作为分隔符,而且对于某些列需要进行逆序排列,这样sort命令写起来比较麻烦了  比如下面的文件内容,使用[TAB]进行分割:   Group-ID Category-ID Text ...

    linux使用lsof命令查看文件打开情况

    主要给大家介绍了关于在linux中利用lsof命令如何查看文件打开情况的相关资料,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    linux之sort命令的用法

    sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出

    Linux学习笔记【博文整理系列】

    Linux笔记——命令:Sort,uniq,join,cut,paste,split Linux笔记——shell基础:变量&本地变量&位置变量&特定变量参数 Linux笔记——条件测试test Linux笔记——控制流 Linux笔记——shell补充:参数传递&函数等 Linux...

    Linux sort命令用法详解

    Linux sort命令 Linux sort命令用于将文本文件内容加以排序。 sort可针对文本文件的内容,以行为单位来排序。 语法 sort [-bcdfimMnr][-o][-t][+-][--help][--verison][文件] 参数说明: -b 忽略每行前面开始出的...

    Linux文本处理命令sort详解

    今天小编就为大家分享一篇关于Linux文本处理命令sort详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    Linux中用Sort和Tsort对文件进行排序

    文中介绍了sort 和 tsort命令的特点和功能,并且指出了使用这种命令的方法。通过使用 sort 和 tsort,而不是采取使用 Perl 或 Awk 的较复杂的解决方案,可以节省时间。

Global site tag (gtag.js) - Google Analytics