`

shell脚本 之 sort cut

 
阅读更多

先看sort 

1.sort 主要是三个命令参数 -n,u,r,h

-n 按照数字进行排序,默认是按照字符进行排序的

-u 去除相同的字符,这个参数等同于  sort -u < ===== > sort|uniq 

-r 就是按照逆序排序,不加这个参数,我们默认时按照升序排的。加上后就是降序。

-h 按照人类可识别的逻辑进行排序,例如 1k,2g等

具体看个例子本,建立一个文本名字为:num

2

3

6

3

8

9

2

17

-------------------------------

 

sort num 
inter12@inter12:~/myshell/shell/tr$ sort num 
17
2
2
3
3
6
8
9
-------------------------------
 

 

sort -n num 
inter12@inter12:~/myshell/shell/tr$ sort -n num 
2
2
3
3
6
8
9
17
-------------------------------
 

 

sort -nr num 
inter12@inter12:~/myshell/shell/tr$ sort -nr num 
17
9
8
6
3
3
2
2
-------------------------------
 

 

sort -u num 去除重复的
inter12@inter12:~/myshell/shell/tr$ sort -un num 
2
3
6
8
9
17
-------------------------------
新建一个文本: hnum
1k
4G
2k
9G
5M
-------------------------------
sort -n hnum 
inter12@inter12:~/myshell/shell/tr$ sort -n hnum 
1k
2k
4G
5M
9G
得不到我们需要的排序
-------------------------------
sort -h hnum
inter12@inter12:~/myshell/shell/tr$ sort -h hnum 
1k
2k
5M
4G
9G
这样就OK了
 

 

2.cut

cut 主要是三个参数比较常用 -d f c

-d:按照什么进行符号分割,默认时空格,所有的shell命令进行分割的默认都是空格。等同于 awk中的 -F 

-f:分割后取得第几个区块,后面跟的时数字

-c:分割后取第几个字符,后面跟的也是字符

 

先生成一个测试文件

inter12@inter12:~/myshell/shell/cut$ ping www.sina.com.cn|tee ping

PING saaschannel.bops.test.com (127.61.10.10) 56(84) bytes of data.

64 bytes from comm-dns-ptr.test.com (127.61.10.10): icmp_req=1 ttl=55 time=1.00 ms

64 bytes from comm-dns-ptr.test.com (127.61.10.10): icmp_req=2 ttl=55 time=0.989 ms

64 bytes from comm-dns-ptr.test.com (127.61.10.10): icmp_req=3 ttl=55 time=1.02 ms

64 bytes from comm-dns-ptr.test.com (127.61.10.10): icmp_req=4 ttl=55 time=1.04 ms

 

这个时候会生成一个 ping 文件 

 

cut -c1-2 ping :取第1到2个字符
inter12@inter12:~/myshell/shell/cut$ cut -c1-2 ping 
PI
64
64
64
64
----------------------------------------------
cut -d ":" -f 2 ping 
inter12@inter12:~/myshell/shell/cut$ cut -d ":" -f 2 ping 
PING saaschannel.bops.alibaba.com (172.16.84.168) 56(84) bytes of data.
 icmp_req=1 ttl=55 time=1.00 ms
 icmp_req=2 ttl=55 time=0.989 ms
 icmp_req=3 ttl=55 time=1.02 ms
 icmp_req=4 ttl=55 time=1.04 ms
就是将冒号作为分隔符,取得第二个参数
 

 

shell下面很多命令是可以互通的,上面效果的不同实现

awk 版本:

awk -F ":" '{printf "%s\n",$2}' ping 

sed 版本:

sed -e 's/^.*://g' ping  

 

分享到:
评论

相关推荐

    Linux shell脚本 精华中文版

    016_基础shell编程_shell脚本介绍.pdf 017_条件测试_test_expr.pdf 018_控制流结构_if_for_while_case_util_break_continue.pdf 019_Shell函数.pdf 020_向脚本传递参数_shift_getops.pdf 021_创建屏幕输出_...

    shell 编程指南pdf

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    shell 编程(中文)[pdf]

    016_基础shell编程_shell脚本介绍.pdf 017_条件测试_test_expr.pdf 018_控制流结构_if_for_while_case_util_break_continue.pdf 019_Shell函数.pdf 020_向脚本传递参数_shift_getops.pdf 021_创建屏幕输出_tput.pdf ...

    shell脚本定时统计Nginx下access.log的PV并发送给API保存到数据库

    1,统计PV和IP 统计当天的PV(Page View) ...cat access.log.1 |cut -d ' ' -f 1 | sort |uniq -c | sort -nr | awk '{print $0 }' | head -n 10 查看日志中访问次数超过1000次的前10个IP cat access.log.

    LINUX与UNIX SHELL编程指南(很全)

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    Linux与unix shell编程指南

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    shellfuncs:执行外壳函数的Python API,就像它们是Python函数一样

    find -name ' *.py ' | xargs grep -e ' ^import os$ ' -e ' ^import sys$ ' -e ' ^import re$ ' | cut -d: -f2 | sort | uniq -c } 您想在Python中执行count_python_imports函数。 与其使用繁琐的子流程,不如...

    绝版经典《Linux与UNIX Shell编程指南》

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    shell教程-30章,下了之后会让你大吃一惊,相当好

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    LINUX与UNIX SHELL编程指南 高清PDF

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    linux与unix shell编程指南

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    LINUX/UNIX Shell编程大作业

     可能你还需要查询一些Unix/Linux命令,比如awk,、sort、tr、cut、paste、sed、grep;你也可能还需要查询其他的Unix/Linux命令。  建议你在主目录下建立一个以 xx xx xx(xx xx xx为学号)命名的目录,并且在本次...

    linux shell 编程教程

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    Linux shell编程指南

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    shell编程和unix命令

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    LINUX与UNIX SHELL编程指南

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

Global site tag (gtag.js) - Google Analytics