shell命令之sort

sort命令

sort将文件的每一行作为单位进行比较,默认(不加任何选项)是以每行的首字符向后依次按其ASCII码进行比较,最后按升序输出,执行命令后不改变源文件的内容

#常见的选项

	 默认------->按升序输出

在这里插入图片描述

-r ----------->降序输出

在这里插入图片描述

 -n ----------->按数值进行排序

如果不加-n选项,那么还是按照字符的ASCII比较,加了就按照数值比较
如果不加-n选项,那么还是按照字符的ASCII比较,加了就按照数值比较

 -u ----------->将排序中重复的行去掉

单独使用-u去重选项是指去掉完全相同的行
单独使用-u去重选项是指去掉完全相同的行
若需要去重不完全相同的的行中带有相同的列,需要结合其他选项,指定列去重
若需要去重不完全相同的的行中带有相同的列,需要结合其他选项,指定列去重

-o ----------->将排序后的结果写入其他文件

sort命令执行完后默认将结果输出到屏幕上,若需要输出到文件里,在执行命令的后面加 -o 文件名
exp:sort -u file.txt -o result.txt
保存的文件存在则直接将结果覆盖里面的内容,不存在则创建

组合选项,比较重要,针对文件中一行有多列的情况,想按照某一列的字段进行用以下选项

sort -t '分隔符' -k 指定列数(数字) 文件名

分隔符:一般是空格,制表符,冒号,逗号等符号
指定列数:代表第几列,没有第0列,若只写一列数字,若域的数值相同,则继续比较后面域或者前面的域
列或者元素,若只想对本列起作用,后面还需多加一个本列数字来限定本列 k 1,1

sort -t ' ' -k [1~] [其他选项] 文件名


1代表第一列,按空格分隔符取第一列 -nu代表按数值大小排序后去重

其他选项
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照月份的缩写进行排序。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值