`
zhaolei415
  • 浏览: 168878 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux sort命令的用法

阅读更多
sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始!

  1 sort的工作原理

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

  [rocrocket@rocrocket programming]$ cat seq.txt

  banana

  apple

  pear

  orange

  [rocrocket@rocrocket programming]$ sort seq.txt

  apple

  banana

  orange

  pear

  2 sort的-u选项

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

  [rocrocket@rocrocket programming]$ cat seq.txt

  banana

  apple

  pear

  orange

  pear

  [rocrocket@rocrocket programming]$ sort seq.txt

  apple

  banana

  orange

  pear

  pear

  [rocrocket@rocrocket programming]$ sort -u seq.txt

  apple

  banana

  orange

  pear

  pear由于重复被-u选项无情的删除了。

  3 sort的-r选项

  sort默认的排序方式是升序,如果想改成降序,就加个-r就搞定了。

  [rocrocket@rocrocket programming]$ cat number.txt

  1

  3

  5

  2

  4

  [rocrocket@rocrocket programming]$ sort number.txt

  1

  2

  3

  4

  5

  [rocrocket@rocrocket programming]$ sort -r number.txt

  5

  4

  3

  2

  1

  4 sort的-o选项

  由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename > newfile。

  但是,如果你想把排序结果输出到原文件中,用重定向可就不行了。

  [rocrocket@rocrocket programming]$ sort -r number.txt > number.txt

  [rocrocket@rocrocket programming]$ cat number.txt

  [rocrocket@rocrocket programming]$

  看,竟然将number清空了。

  就在这个时候,-o选项出现了,它成功的解决了这个问题,让你放心的将结果写入原文件。这或许也是-o比重定向的唯一优势所在。

  [rocrocket@rocrocket programming]$ cat number.txt

  1

  3

  5

  2

  4

  [rocrocket@rocrocket programming]$ sort -r number.txt -o number.txt

  [rocrocket@rocrocket programming]$ cat number.txt

  5

  4

  3

  2

  1

  5 sort的-n选项

  你有没有遇到过10比2小的情况。我反正遇到过。出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面喽。这也是sort的一贯作风。

  我们如果想改变这种现状,就要使用-n选项,来告诉sort,“要以数值来排序”!

  [rocrocket@rocrocket programming]$ cat number.txt

  1

  10

  19

  11

  2

  5

  [rocrocket@rocrocket programming]$ sort number.txt

  1

  10

  11

  19

  2

  5

  [rocrocket@rocrocket programming]$ sort -n number.txt

  1

  2

  5

  10

  11

  19

  6 sort的-t选项和-k选项

  如果有一个文件的内容是这样:

  [rocrocket@rocrocket programming]$ cat facebook.txt

  banana:30:5.5

  apple:10:2.5

  pear:90:2.3

  orange:20:3.4

  这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。

  那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?

  幸好,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)

  指定了间隔符之后,就可以用-k来指定列数了。

  [rocrocket@rocrocket programming]$ sort -n -k 2 -t : facebook.txt

  apple:10:2.5

  orange:20:3.4

  banana:30:5.5

  pear:90:2.3

  我们使用冒号作为间隔符,并针对第二列来进行数值升序排序,结果很令人满意。

  7 其他的sort常用选项

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

  -c会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1

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

  -M会以月份来排序,比如JAN小于FEB等等

  -b会忽略每一行前面的所有空白部分,从第一个可见字符开始比较。
分享到:
评论

相关推荐

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

    Linux 下 uniq 和 sort 命令用法详解 uniq 命令是 Linux 中的一个文本处理命令,用于去除文本中的重复行。该命令读取输入文件,并比较相邻的行。在正常情况下,第二个及以后更多个重复行将被删去,行比较是根据所用...

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

    Linux sort 命令参数及用法详解 Linux sort 命令是一个功能强大且实用的命令行工具,用于对文本文件的内容进行排序。sort 命令的主要功能是将文本文件的内容按照指定的顺序进行排序,以行为单位进行排序。 语法:...

    Linux sort命令用法详解

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

    linux下uniq和sort命令用法.docx

    Linux 下 uniq 和 sort 命令用法 uniq 命令是 Linux 中的一个文本处理命令,用于删除或显示文本文件中的重复行。它可以读取输入文件,并比较相邻的行。在正常情况下,第二个及以后更多个重复行将被删去,行比较是...

    linux ps 命令详解

    ### `ps`命令的基本用法 基本的`ps`命令不带任何参数时,会显示当前终端下的进程信息。例如: ```bash ps ``` ### 常见选项 1. `-a`:显示所有用户的所有进程。 2. `-u` `<username>`:显示指定用户的进程。 3. ...

    linux之sort

    Linux 之 sort 命令详解 Linux 之 sort 命令是 Linux 中一个非常有用的命令,用于对文本文件中的数据进行排序。sort 命令可以根据不同的数据类型进行排序,例如按照字母顺序、数字顺序、日期顺序等。 sort 命令的...

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

    wc、sort 和 diff 命令是 Linux 中三个非常有用的文件处理命令,本文将详细介绍这三个命令的使用方法和选项。 wc 命令 ------ wc 命令是 Linux 中一个非常有用的命令,用于统计文件中的字节数、字数、行数等信息。...

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

    Sort 命令的基本用法是使用 sort 命令后跟着要排序的文件名,例如 sort /etc/passwd 将对 /etc/passwd 文件进行排序。Sort 命令也可以使用多种选项来控制排序的行为,例如使用 -r 选项可以倒转排序的次序,使用 -u ...

    kali linux系统常用命令手册

    find命令用于搜索文件,cat命令用于连接文件并显示到标准输出,sort命令用于排序数据文件。 4.3 移动文件 mv命令用于移动文件。 4.4 文件属性 chattr命令用于修改文件属性,lsattr命令用于显示文件属性。 4.5 文件...

    Linux命令学习+Linux标准文本处理命令

    通过学习这些基本的Linux命令和Shell操作,初学者可以更快地熟悉Linux环境,并能有效地管理和操作Linux系统。此外,掌握这些技能还有助于提升在开发、运维以及其他与Linux相关的领域的专业能力。

    linux常用命令集合

    Linux操作系统以其稳定性和灵活性在IT领域占据着重要地位,学习和掌握Linux常用命令是成为熟练的系统管理员或开发者的基础。以下是一些常见的Linux命令及其详细解释: 1. **Ctrl+u**:清除当前行的输入。 2. **命令...

    Linux常用命令 Linux TXT

    ### Linux常用命令详解 #### 一、登录与用户管理 **1. login** - **功能描述**:`login` 命令用于用户登录到 Linux 系统。 - **基本语法**:`login [选项]` - `[name]` 指定用户名。 - `[p]` 如果指定了该选项...

    Linux ps命令详解

    常用的 ps 命令参数有 u、a、x 三个,下面将通过例子来说明其具体用法。 例如,以 root 身份登录系统,查看当前进程状况: $ ps 可以看到,显示的项目共分为四项,依次为 PID(进程 ID)、TTY(终端名称)、TIME...

    Linux 常用命令 Linux 常用命令

    Linux 常用命令 Linux 操作系统提供了许多实用的命令,以下是其中的一些: 1. tar 命令:创建和管理 tar 文件 ...这些命令只是 Linux 命令的其中一部分,但它们是非常有用的,可以帮助您更好地使用 Linux 操作系统。

    LINUX处理文本命令

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

    Linux命令之netstat

    可以使用以下命令来查出哪个 IP 地址连接最多,并将其封了:`netstat -na|grep ESTABLISHED|awk {print $5}|awk -F: {print $1}|sort|uniq -c|sort -r +0n` Netstat 命令是一个非常强大的工具,能够帮助我们查看和...

    linux sort join cut paste split uniq

    在Linux操作系统中,文本...合并与分类.txt”文件中,可能包含了更多关于这些命令的实际操作示例和详细用法,建议结合该文件进一步学习,以加深理解和掌握。通过实践,你将能够灵活运用这些工具解决各种文本处理问题。

    Linux 常用命令整理

    Linux是一种广泛使用的开源类Unix操作系统,其用户界面是基于命令行的。在Linux环境下,命令行工具和脚本提供了强大...由于Linux系统的广泛性,这些命令在不同发行版和环境下可能略有差异,但基础用法通常都是通用的。

Global site tag (gtag.js) - Google Analytics