内容简介:sort命令将许多不同的域按不同的列顺序分类。sort命令以空格作为字段分隔符,将一行分割为多个关键字对文件进行排序。需要注意的是sort命令并不对文件内容进行实际的排序(即文件内容没有修改),只是将文件内容按有序输出。实例:0. 测试文件
sort命令将许多不同的域按不同的列顺序分类。sort命令以空格作为字段分隔符,将一行分割为多个关键字对文件进行排序。需要注意的是sort命令并不对文件内容进行实际的排序(即文件内容没有修改),只是将文件内容按有序输出。
命令格式
sort -cmu -o output_file [other_options] +pos1 +pos2 input_files
命令选项
- -c:检查文件是否已经按照顺序排序。
- -m:将几个 排序 号的文件进行合并。
- -u:删除所有重复行。
- -o<输出文件>:将排序后的结果存入指定的文件。
- -b:忽略每行前面开始出的空格字符。
- -h:人类可阅读的格式。
- -d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
- -f:排序时,将小写字母视为大写字母。
- -i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
- -M:将前面3个字母依照月份的缩写进行排序。
- -n:按照数值的大小排序。
- -r:以相反的顺序来排序。
- -t<分隔字符>:指定排序时所用的栏位分隔字符。
- +<起始栏位>-<结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
实用命令
实例:0. 测试文件
描述:下面是device_sort的清单,包含了用户设备登录次数情况,各域为:(1)用户ID,(2)手机系统版本,(3)登录访问次数。域分隔符为冒号。域号从0开始,第1列用户ID为域0,即分类键0,以此类推。
实例:1. 文件是否已分类
描述:检查device文件的域用户ID是否已经有序。sort不加任何参数默认以域0(也就是第一列)进行排序,-c选项检查文件是否已按某种顺序排序。
命令:sort -c device
输出:
实例:2. 使用分隔符
描述:将device用:作为域分隔符分类,然后按第一列进行排序。实际上读文件时sort操作将行中各域进行比较,这里只返回基于第一域sort的结果。
命令:sort -t : device
输出:
实例:3. 排序求逆
描述:反转实例2中的排序结果。这里先按照第一列进行排序,然后反转其结果。
命令:sort -t: -r device
输出:
实例:4. 使用选项k按指定列排序
描述:使用选项k指定第1列进行排序。
命令:sort -k1 -t: device
输出:
实例:5. 数值域排序
描述:使用n选项指明对数值内容进行排序,否则会按字符串从第一个字符开始进行比较。
命令:sort -nk3 -t: device
输出:
实例:6. 唯一性排序
描述:使用u选项过滤所有重复的行,每个重复的行只显示一次。
命令:sort -u -t: device
输出:
实例:7. 两个文件进行排序、合并,并且删除重复行
描述:两个文件进行排序、合并,并且删除重复行。
命令:sort -u device device2
输出:
实例:8. pos用法
格式: F[.C][OPTS][,F[.C][OPTS]]
解释:指定排序域开始和结束的位置,F是字段的序号,C是字符的序号,两者初始都是1,结束位置可以不指定,默认是到行结束位置。如果-t和-b选项都没有指定,那么字段中的字符从前面的空白开始计数。OPTS由一个或多个单个字母排序的选项[bdfgiMhnRrV],它们将重写全局排序选项,如果没有排序键被指定,sort就会以一整行作为键。-b选项去除每个键的前导空白。
假设有五列字段。
-k 2:表示从第二列开始到最后一列作为排序的关键字。
-k 2,5:表示从第二列开始到第五列作为排序的关键字。
-k 2,2:表示仅以第二列作为排序的关键字。
-k 4 -k 5:-k5是多余的。
-k 2,2 -k 1,1:先以第二列进行排序,再以第一列排序。
-k 2.2,2.5 -k 4.3,4.5:先以第二列的第二个字符开始到第五个字符进行排序,然后先以第四列的第三个字符开始到第五个字符进行排序。
sort +field_number .characters_in
描述:从第三列的第二个字符开始排序。
命令:sort -k3.2 -t: device
输出:
描述:对/root目录执行ls -l的命令,其结果通过管道传递给sort进行排序,先以第二列排序,然后第五列,最后是第九列倒序。
命令:ls -l /root | sort -k 2,2n -k 5,5n -r -k 9,9
输出:
实例:9. head和tail与sort配合使用
sort +field_number .characters_in
描述:以第三列的数值形式进行排序,从结果中抽取前3条和倒数3条记录。
命令:
sort -nk3 -t: device | head -3
sort -nk3 -t: device | tail -3
输出:
实例:10. awk与sort配合使用
描述:将sort结果用awk进行加一点附加信息。
命令:sort -nk3 -t: device | tail -1 | awk -F: '{print $1"--"$2"--"$3}'
输出:
实例:11. 两个输入文件进行sort,然后把它们连接成一行
描述:创建两个文件,并用数据填充,然后对这两个文件排序并连接。
命令:
echo -e "5 Reliable\n2 Fast\n3 Secure\n1 open-source\n4 customizable" > file1.txt
echo -e "3 RedHat\n1 Debian\n5 Ubuntu\n2 Kali\n4 Fedora" > file2.txt
join <(sort -n file1.txt) <(sort file2.txt) 1 open-source Debian
输出:
实例:12. 将两个分类文件合并
描述:device_sorted和device_sorted2是两个已排好序的文件,文件合并前,它们必须以被分类。
命令:sort -t: -m -k1 device_sorted device_sorted2
输出:
实例:13. 按照月份顺序进行排序
描述:M选项对month.txt文件按照月份顺序进行排序。sort命令需要至少3个字符来确认月份名称。
命令:sort -M month.txt
输出:
实例:14. 把数据整理成方便人们阅读的形式
描述:-h选项将把数据整理成方便人们阅读的形式,比如1K、2M、3G、2T,这里面的K、G、M、T代表千、兆、吉、梯。
命令:ls -lh /root | sort -h -k5
输出:
实例:15. 随机化结果
描述:-R选项将结果进行hash随机化排序。
命令:ls -lh /root | sort -k5 -R
输出:
以上所述就是小编给大家介绍的《Linux sort命令用法详解》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- SQLAlchemy框架用法详解
- Elasticsearch SQL 用法详解
- SQL中Merge用法详解
- golang包time用法详解
- Python中with用法详解
- EventBus3.1用法详解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Spring Into HTML and CSS
Molly E. Holzschlag / Addison-Wesley Professional / 2005-5-2 / USD 34.99
The fastest route to true HTML/CSS mastery! Need to build a web site? Or update one? Or just create some effective new web content? Maybe you just need to update your skills, do the job better. Welco......一起来看看 《Spring Into HTML and CSS》 这本书的介绍吧!
XML 在线格式化
在线 XML 格式化压缩工具
Markdown 在线编辑器
Markdown 在线编辑器