linux命令-sort

1. 主要选项

对文本行排序。
默认排序规则:
空白在前,字符在后;
大写在前,小写在后;

选项说明
-b忽略前导的空白符;
-f忽略大小写;
-t指定分隔符,"-t:"指定:为分隔符;
-k指定比较的字段,-k 2,表示比较第二个字段;-k2.1,2.3表示从第2个字段的第1个字符,比较到2个字段的第3个字符;
-n以整数数字比较;

2. 默认排序

示例文本, 后续命令都使用该文本

$ cat log.txt
a40:123

a5:400
    c12:60
    c5:59
B30:7
b4:9

说明:默认排序,空白在前/字符在后,大写在前/小写在后

命令:

$ sort log.txt

    c12:60
    c5:59
B30:7
a40:123
a5:400
b4:9

3. -b忽略前导空白字符

说明:略
命令:

$ sort -b log.txt

B30:7
a40:123
a5:400
b4:9
    c12:60
    c5:59

4. -f忽略大小写

说明:略
命令:

$ sort -f log.txt

    c12:60
    c5:59
a40:123
a5:400
B30:7
b4:9

5. -t指定分隔符、-k指定比较的字段

说明:
“-t:”, 指定冒号为分隔符
“-k2”, 指定通过比较第二个字段来排序
“-k2.1,2.2”, 指定通过比较第二个字段的前两位来排序, 例子见-n选项

下例中,按第二个字段排序:123,400,59,60,7,9
命令:

$ sort -t: -k2 log.txt

a40:123
a5:400
    c5:59
    c12:60
B30:7
b4:9

6. -n以整数数字大小排序

说明:默认情况下,11排在前面,9排在后面,要按数字大小排序,使用-n选项
命令:第二个字段以数字大小排序:7,9,59,60,123,400

$ sort -t: -k2 -n log.txt

B30:7
b4:9
    c5:59
    c12:60
a40:123
a5:400
$ 
$ sort -t: -k2.1,2.2  -n log.txt #按前两位的整数大小排序,所以400排在59前面。

B30:7
b4:9
a40:123
a5:400
    c5:59
    c12:60
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值