linux 中 sort -k选项

 

001、简单测试

复制代码
[root@PC1 test1]# ls
a.txt
[root@PC1 test1]# cat a.txt                  ## 测试数据
01 02 03b 34
05 86 87a 98
09 10 41b 12
13 54 15i 16
17 18 19a 20
[root@PC1 test1]# sort -k 4 a.txt            ## 按照第四列进行排序
09 10 41b 12
13 54 15i 16
17 18 19a 20
01 02 03b 34
05 86 87a 98
[root@PC1 test1]# sort -k 3 a.txt            ## 按照第三列继续排序
01 02 03b 34
13 54 15i 16
17 18 19a 20
09 10 41b 12
05 86 87a 98
复制代码

 。

 

002、-k域的字段

复制代码
[root@PC1 test1]# ls
a.txt
[root@PC1 test1]# cat a.txt                          ## 测试数据
01 02 03b 34
05 86 87a 98
09 10 41b 12
13 54 15i 16
17 18 19a 20
[root@PC1 test1]# sort -k 3.3,3.3 a.txt             ## 指定第三个域的第三个字符排序,无效
09 10 41b 12
01 02 03b 34
13 54 15i 16
05 86 87a 98
17 18 19a 20
[root@PC1 test1]# sort -t " " -k 3.3,3.3 a.txt      ## 使用-t选项指定域的分隔符,生效, 为什么?
05 86 87a 98
17 18 19a 20
01 02 03b 34
09 10 41b 12
13 54 15i 16
复制代码

 。

 

003、

复制代码
[root@PC1 test1]# ls
a.txt
[root@PC1 test1]# cat a.txt                        ## 测试数据
01 02 03b 34
05 86 87a 98
09 10 41b 12
13 54 15i 16
17 18 19a 20
[root@PC1 test1]# sort -k 2.2 a.txt                ## 依据第二个字段的第二个字符排序
01 02 03b 34
09 10 41b 12
17 18 19a 20
13 54 15i 16
05 86 87a 98
[root@PC1 test1]# sort -t " " -k 2.2 a.txt         ## 使用-t选项指定空格为分隔符生效
09 10 41b 12
01 02 03b 34
13 54 15i 16
05 86 87a 98
17 18 19a 20
复制代码

 。

 

004、

复制代码
[root@PC1 test1]# ls
a.txt
[root@PC1 test1]# cat a.txt               ## 测试数据
01      02      03b     34
05      86      87a     98
09      10      41b     12
13      54      15i     16
17      18      19a     20
[root@PC1 test1]# sort -k 2.2 a.txt       ## 无效
01      02      03b     34
09      10      41b     12
17      18      19a     20
13      54      15i     16
05      86      87a     98
[root@PC1 test1]# sort -t "\t" -k 2.2 a.txt        ## 指定制表符分隔符,无效
sort: multi-character tab ‘\\t’
[root@PC1 test1]# sort -t $'\t' -k 2.2 a.txt       ## 指定制表符分隔符
09      10      41b     12
01      02      03b     34
13      54      15i     16
05      86      87a     98
17      18      19a     20
复制代码

 。

 

005、

复制代码
[root@PC1 test1]# ls
a.txt
[root@PC1 test1]# cat a.txt                             ## 测试数据
01      02      03b     34
05      86      87a     98
09      10      41b     12
13      54      15i     16
17      18      19a     20
[root@PC1 test1]# sort -t $'\t' -k 2.2 a.txt           ## 按照第二个字段的第二个字符开始排序
09      10      41b     12
01      02      03b     34
13      54      15i     16
05      86      87a     98
17      18      19a     20
[root@PC1 test1]# sort -t $'\t' -kr 2.2 a.txt                   ## 逆向排序指定失败
sort: invalid number at field start: invalid count at start of ‘r’
[root@PC1 test1]# sort -t $'\t' -k 2.2r a.txt                   ## 逆向排序
17      18      19a     20
05      86      87a     98
13      54      15i     16
01      02      03b     34
09      10      41b     12
复制代码

 。

 

posted @   小鲨鱼2018  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2023-11-05 /lib64/libz.so.1: version `ZLIB_1.2.9' not found (required by ./rmblastn)
2023-11-05 linux 中 shift命令
2023-11-05 linux将Bash数组的元素连接为分隔符分隔的字符串
2023-11-05 linux shell 脚本中local的用法
2023-11-05 linux shell中 创建数组及数组的基本操作
2021-11-05 could not find function "read_excel"
2021-11-05 R语言中计算几何平均数
点击右上角即可分享
微信分享提示