阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

学习一个 Linux 命令:sort 命令

61次阅读
没有评论

共计 1706 个字符,预计需要花费 5 分钟才能阅读完成。

导读 今天来给大家介绍一下 linux 的 sort 命令

学习一个 Linux 命令:sort 命令

1. 命令简介

以行为单位对文本文件的内容进行排序,将结果显示在标准输出,比较原则是从行首字符向后,依次按 ASCII 码值进行比较,最后按升序输出。如果 file 参数指定多个文件,那么 sort 命令将这些文件纵向连接起来,当作一个文件进行排序。

不加任何选项时,将对整行从第一个字符开始依次向后直到行尾按照 ASCII 码值做升序排序。

2. 命令格式
sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F
3. 选项说明

注意,长选项的强制性参数对于短选项也是强制的。

-b, --ignore-leading-blanks
 忽略每行前面的空格字符
-c, --check, --check=diagnose-first
 只检查文件是否已排序,不进行排序
-C, --check=quiet, --check=silent
 类似于 -c,但不报告第一个乱序的行
-d, --dictionary-order
 按照字典序,只考虑字母、数字及空格字符,忽略其他字符
--files0-from=F
 从文件 F 中以 NUL 字符结尾的字符串作为输入文件名;如果 F 是 -,则从标准输入中读取文件名
-f, --ignore-case
 排序时,将小写字母视为大写字母
-i, --ignore-nonprinting
 排序时,只考虑可打印字符,忽略不可打印字符
-m, --merge
 合并多个已排序的文件
-n, --numeric-sort
 按数值大小排序
-o, --output=FILE
 将排序结果输出到指定文件
-r,--reverse
 逆向输出排序结果(降序排序)-t, --field-separator=SEP
 指定排序时使用的分隔字符,sort 命令默认字段分隔符为空格和 Tab
-u, --unique
 相同的数据中,仅输出一行
-k,--key=POS1[,POS2]
 以第 POS1 栏到 POS2 栏排序,默认到最后一栏
--help
 显示帮助信息并退出
--version
 显示版本信息并退出 
4. 常用示例
(1)对 /etc/passwd 进行排序。
cat /etc/passwd | sort
adm:x:3:4:adm:/var/adm:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
(2)/etc/passwd 内容以冒号: 来分隔,以第三栏至行末尾栏来排序。
cat /etc/passwd | sort -t ':' -k 3
root:x:0:0:root:/root:/bin/bash
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
(3)如果对 /etc/passwd,以第六个域的第 2 个字符到第 4 个字符进行升序排序,再基于第一个域进行反向排序。
cat /etc/passwd | sort -t ':' -k 6.2,6.4 -k 1,1r
sync:x:4:65534:sync:/bin:/bin/sync
proxy:x:13:13:proxy:/bin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
bin:x:3:3:sys:/dev:/bin/sh

可以看出,六个域的第 2 个字符到第 4 个字符是升序排序。六个域的第 2 个字符到第 4 个字符如果相同则分为一组,组内再按照第一个域进行降序排序。注意,-r 需要与第二个 -k 的 <POS1,POS2> 连写,否则对前面两个 -k 均有效。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1706字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中