前阵子,写脚本时,用到sort来对文件排序;第一次没有达到所需的效果,原来是LANG设置问题,后来先export LANG=C,然后再sort就满足我的要求了。

某牛人总结的sort用法:http://xok.la/2009/05/linux_command_sort.html

Sort排序命令在Linux系统中使用方法

语法格式

sort [ -A ] [ -b ] [ -c ] [ -d ] [ -f ] [ -i ] [

-m] [ -n ] [ -r ] [ -u ] [ -o OutFile ] [ -t Character ] [ -T Directory ]

[ -y [ Kilobytes ] ] [ -z RecordSize ] [ [ + [ FSkip ] [ .CSkip ] [ b ]

[ d ] [ f ] [ i ] [ n ] [ r ] ] [ - [ FSkip ] [ .CSkip ] [ b ] [ d ] [ f

] [ i ] [ n ] [ r ] ] ] [ -k KeyDefinition ] [文件 ]

使用说明

sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort

命令将这些文件连接起来,并当作一个文件进行排序。-(减号)代替文件名指定标准输入。如果您不指定任何文件名,那么该命令对标准输入排序。可以使用

-o 标志指定输出文件。

如果不指定任何标志,sort 命令基于当前语言环境的整理顺序对输入文件的所有行排序。

主要参数

-A 使用 ASCII

整理顺序代替当前语言环境的整理顺序在逐字节的基础上排序。

-b 忽略前导空格和制表符,找出字段的第一或最后列。

-c

检查输入是否已按照标志中指定的排序规则进行排序。如果输入文件排序不正确,就返回一个非零值。

-d

使用字典顺序排序。比较中仅考虑字母、数字和空格。

-f 比较前将所有小写字母改成大写字母。

-i 比较中忽略所有非显示字符。

-k

KeyDefinition 指定排序关键字。KeyDefinition 选项的格式为: [ FStart [ .CStart ] ] [

Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]排序关键字包括所有以 FStart

变量指定的字段和 CStart 变量指定的列开头的字符及以 FEnd 变量指定的字段和 CEnd 变量指定的列结束的字符。Modifier

变量的值可以是 b、d、f、i、n 或 r。修饰符与同一字母的标志等价。

-m 只合并多个输入文件;假设输入文件已经排序。

-n

按算术值对数字字段排序。数字字段可包含前导空格、可选减号、十进制数字、千分位分隔符和可选基数符。对包含任何非数字字符的字段进行数字排序会出现无法

预知的结果。

-o OutFile 将输出指向 OutFile 参数指定的文件,而不是标准输出。OutFile 参数值可以与 File

参数值相同。

-r 颠倒指定排序的顺序。

-t Character 指定 Character 为单一的字段分隔符。

-u

禁止按照排序关键字和选项的所有等同排序(每一组行中一行除外)。

-T Directory 将创建的所有临时文件放入 Directory

参数指定的目录中。

-y[Kilobytes] 用 Kilobytes 参数指定的主存储的千字节数启动 sort

命令,并根据需要增加存储量。(如果 Kilobytes

参数指定的值小于最小存储站点或大于最大存储站点,就以这个最小存储站点或最大存储站点取代)。如果省略 -y 标志,sort

命令以缺省的存储大小启动。-y0 标志用最小存储启动,而 -y 标志(不带 Kilobytes 值)用最大存储启动。sort

命令使用的存储量显著地影响性能。以大存储量对小文件排序将很浪费。

-z RecordSize

如果正在排序的任一行大于缺省的缓冲区大小,要防止出现异常终止。指定 -c 或 -m

标志时,省略排序阶段,使用系统的缺省缓冲大小。如果已排序行超出这一大小,排序异常终止。-z

选项指定排序阶段最长行的记录,因而可在合并阶段分配足够的缓冲区。RecordSize 必须指明等于或大于要合并的最长行的字节值。

应用实例

要在 LC_ALL、LC_COLLATE 或 LANG 环境变量设置为 En_US 的情况下排序 xok.la.file 文件,请输入:

LANG=En_US sort xok.la.file

此命令序列显示以升序词典顺序排序的 xok.la.file 文件的内容。每一列的字符,包括空格、数字和特殊字符都经一一比较。 例如,如果

xok.la.file 文件包含文本:bananaorangePersimmonapple%%bananaappleORANGEsort

命令显示:%%bananaORANGEPersimmonappleapplebananaorange在 ASCII

整理序列中,%(百分号)在大写字母前,大写字母在小写字母前。如果您当前的语言环境指定 ASCII 之外的字符集,结果可能不同。

要以字典顺序排序,请输入:

sort -d xok.la.file

此命令序列排序和显示 xok.la.file 文件的内容,并且只比较字母、数字和空格。如果 xok.la.file 文件与示例 1

相同,那么 sort 命令显示: ORANGEPersimmonappleapple%%bananabananaorange-d 标志忽略

%(百分号)字符,因为它不是个字母、数字或空格。(即 %%banana 被 banana 取代)。

要将包含大写字母和具有类似小写行的特殊字符行分组,请输入:

sort -d -f xok.la.file

-d 标志忽略特殊字符,-f 标志忽略大小写差异。将 LC_ALL、LC_COLLATE 或 LANG 环境变量设置为 C

的情况下,xok.la.file 文件的输出结果变为:

appleapple%%bananabananaORANGEorangePersimmon

要除去重复行排序,请输入:

sort -d -f -u xok.la.file

-u 标志告诉 sort 命令除去重复的行,使文件中的每一行唯一。此命令序列显示:

apple%%bananaORANGEPersimmon不仅除去重复的 apple,而且也除去了 banana 和 ORANGE。除去这些是因为

-d 标志忽略 %% 这个特殊字符,-f 标志忽略大小写差异。

要如上面那样排序,除去重复的实例(除非是大写字母或标点不同),请输入:

sort -u +0 -d -f +0 xok.la.file

输入 +0 -d -f 完成的排序与示例 3 中 -d -f 的排序类型相同,+0 进行另一项比较以区分不一样的行。这防止 -u

标志将它们除去。 示例 1 所示的 xok.la.file 文件中,添加的 +0 将 %%banana 与 banana 及 ORANGE 与

orange 区分开来。然而,apple

的两个实例是相同的,所以其中之一被删除。apple%%bananabananaORANGEorangePersimmon

要指定分隔字段的字符,请输入:

sort -t: +1 xokla

此命令序列排序 xokla 文件,对每一行上第一个冒号后的文本进行比较。+1 告诉 sort

命令忽略第一字段,从第二字段的开始到该行的结束进行比较。-t: 标志告诉 sort 命令冒号分隔字段。

如果 xokla 包含:

yams:104turnips:8potatoes:15carrots:104green

beans:32radishes:5lettuce:15那么,将 LC_ALL、LC_COLLATE 或 LANG 环境变量设置为 C

的情况下,sort 命令将显示:carrots:104yams:104lettuce:15potatoes:15green

beans:32radishes:5turnips:8注意数字没有按照数字排序。当用字典式分类从左至右比较每一个字符时出现这种情况。换句话说,3

在 5 之前,所以 32 在 5 之前。

要排序数字,请输入:

sort -t: +1 -n xokla

此命令序列按照第二个字段对 xokla 文件进行数字排序。如果 xokla 文件与示例 6 中的相同,那么 sort 命令将显示:

radishes:5turnips:8lettuce:15potatoes:15green

beans:32carrots:104yams:104

要对多个字段排序,请输入:

sort -t: +1 -2 -n +0 -1 -r xokla

sort -t: -k2,2 n -k1,1 r xokla

此命令序列对第二字段(+1 -2 -n)进行数字排序。在这个顺序中,它以逆字母顺序(+0 -1 -r)对第一字段排序。将

LC_ALL、LC_COLLATE 或 LANG 环境变量设置为 C 的情况下,输出将类似于:

radishes:5turnips:8potatoes:15lettuce:15green

beans:32yams:104carrots:104

此命令按数字顺序对行排序。当两行数字相同时,它们以逆字母顺序出现。

要使用排序的文本替换原始文件,请输入:

sort -o xokla xokla

此命令序列将排序输出存入 xokla 文件( -o xokla)。

linux文件名排序规则,Linux sort 排序使用详解相关推荐

  1. linux下sort命令使用详解---linux将文本文件内容加以排序命令

    转载自:http://www.cnblogs.com/hitwtx/archive/2011/12/03/2274592.html linux下sort命令使用详解---linux将文本文件内容加以排 ...

  2. linux 脚本编写基本命令,Linux Shell命令行及脚本编程实例详解

    <Linux典藏大系:Linux Shell命令行及脚本编程实例详解>共15章,分为两篇.主要内容包括:Linux 及Linux Shell简介.初识Linux Shell.常用Shell ...

  3. linux下mysql数据库基础及客户端命令详解

    linux下mysql数据库基础及客户端命令详解 1.mysql数据库存储引擎: SHOW ENGINES;   #查看mysql支持的存储引擎 常见有如下两个存储引擎: MyISAM:每表三个文件: ...

  4. php fping,【Linux 命令】fping ping 包间隔时间详解

    服务器间检查会用到fping的命令,期间遇到了一个问题,需要将ping包间的间隔时间设置为100毫秒,查看fping -h看下,找到了-i和-p两个参数: 看到这两个参数,我当时的表情是这样的: 看不 ...

  5. Linux下的tar归档及解压缩功能详解

    Linux下的tar归档及解压缩功能详解 一.Linux下解压缩工具 二.gzip工具的使用方法 三.其他解压缩工具 一.Linux下解压缩工具 二.gzip工具的使用方法 三.其他解压缩工具 一.L ...

  6. linux为什么用tar压缩,linux下tar压缩和解压命令用法详解

    linux下tar压缩和解压命令用法详解 2017-03-25 14:06 分享人:老牛 将/usr/local/test目录下所有文件仅打包,不压缩到 /usr/local/auto_bak/目下 ...

  7. 详解FTP服务完成Linux和WIN10之间的信息传输(实验详解)

    详解FTP服务完成Linux和WIN10之间的信息传输(实验详解) 一.FTP简介 1. FTP服务--用来传输文件的协议 2.端口 3.数据连接模式 二.相关配置 1.安装FTP服务 2.设置匿名用 ...

  8. linux压缩命令zip详解,Linux中zip压缩和unzip解压缩命令详解

    如果你的英文足够好,那完全可以不靠任何人就精通linux,只要你会用man.Man实际上就是查看指令用法的help,学习任何一种UNIX类的操作系统最重要的就是学会使用man这个辅助命令.接下来是小编 ...

  9. linux文件属性644到755,linux:644、755、777权限详解

    第一位7等于4+2+1,rwx,所有者具有读取.写入.执行权限: 第二位5等于4+1+0,r-x,同组用户具有读取.执行权限但没有写入权限: 第三位5,同上,也是r-x,其他用户具有读取.执行权限但没 ...

  10. linux环境下blastn命令怎么用,Linux环境下通配符及特殊符号使用详解

    Linux环境下通配符及特殊符号使用详解 我们现在来介绍通配符的使用,通过通配符的过滤,快速找到想找的文件和目录,比如/etc/目录下有上千个目录和文件,不使用通配符想找一个目录和文件是非常麻烦的和花 ...

最新文章

  1. 盘点——那些你不能不知道的自动化测试面试题
  2. 速递|2021双11阿里云数据库技术快报
  3. c语言不安全库_为什么和其他语言相比C语言是快速的语言?
  4. vue的matcher_vue-router工作原理概述和问题分析
  5. JavaScript之Ajax-1 Ajax(Ajax原理、Ajax对象属性和方法)
  6. php web表格导出,javascript将web表格导出成excel
  7. JS getElementsByClassName
  8. 21次课(安装软件包的三种方法、rpm包介绍、rpm工具用法、yum工具用法、 yum搭建本地仓库)...
  9. [教程]Web自动化测试怎么做?Web网页测试全流程解析
  10. java学习第一天笔记
  11. 2022-2027年中国发动机仪表市场规模现状及投资规划建议报告
  12. 移动开发必知必会的六大数据统计平台(入门篇)
  13. android 很多牛叉界面库github地址
  14. 栈(Stack) C 语言实现
  15. 用户网络接口UNI和网络节点接口NNI
  16. (一)计算机基本组成
  17. 无线个人通信(WPAN)-蓝牙
  18. adobe reader xi补丁_Adobe Reader X
  19. echarts绘制百家姓饼状图
  20. 凹凸世界手游服务器维修,凹凸世界手游进不去怎么办 试试这几个解决方法

热门文章

  1. 中南大学21年计算机考研情况 专硕录取均分接近400分!
  2. 独家解读!京东高可用分布式流数据存储的架构设计
  3. 写了一个UUE编码的类.
  4. 自己找不到资源?不妨来试试这4个资源网站,各种资源一键到手!
  5. 性能测试之cpu 分析
  6. 数据库系统概述-4个基本概念、 数据管理技术的产生和发展、 数据库系统的特点
  7. Linux安装solrCloud
  8. 太赞了,看看大神总结的常见数据分析规范!
  9. 从原理的视角,一文彻底区分MOS MOSFET NMOS PMOS CMOS
  10. 如何在必应地图上创建叠加