shell中常用命令-Cut、Sort、Uniq、Seq、Wc

脚本中常用命令

  • 一、Cut
  • 二、Sort
  • 三、Uniq
  • 四、Seq
  • 五、Wc

一、Cut

  • cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“列”来进行分析的,并不是整篇信息分析的。
语法:
cut [选项]... [文件]...
选项:
-d:指定分隔符(不支持空格)
-f:截取指定列
以冒号为分隔符,取前三行
[root@localhost ~]# head -3 /etc/passwd | cut -d ":" -f 7
/bin/bash
/sbin/nologin
/sbin/nologin

二、Sort

  • 对文件中的内容进行排序。
语法:
sort [选项]... [文件1]... 
选项:
-f:忽略字母大小写
-d:只考虑空白区域和字母字符
-b:忽略前导(每行前)的空白区域
-n:根据字符串数值比较,默认使用字符串类型排序
-r:反向排序
-u:删除重复行(uniq命令),配合-c,严格校验排序;不配合-c,则只输出一次排序结果
-t:指定分隔符,默认是制表符
-k n,m:从指定范围排序,从n开始m结束(默认行尾)
  • 注意:sort 的排序方式是根据每行第一个字节来进行排序的。
以升序的方式输出(默认升序)
[root@bogon test]# cat 1.txt 
1
3
2
b
a
A
B
[root@bogon test]# sort 1.txt 
1
2
3
a
A
b
B
以倒序的方式输出
[root@bogon test]# sort -r 1.txt 
B
b
A
a
3
2
1

shell中常用命令-Cut、Sort、Uniq、Seq、Wc_第1张图片
去掉重复的行,可以是不连续
shell中常用命令-Cut、Sort、Uniq、Seq、Wc_第2张图片

三、Uniq

主要就是用来去除文件中连续的重复行

语法:
uniq [选项]... [文件]
选项:
-c:在行首显示统计该行出现次数
-u:显示没有重复过的行
-i:忽略大小写

shell中常用命令-Cut、Sort、Uniq、Seq、Wc_第3张图片
shell中常用命令-Cut、Sort、Uniq、Seq、Wc_第4张图片

统计出 LISTEN (监听) 和 ESTABLISHED (已连接) 出现的次数
[root@bogon test]# netstat -ant | awk /^tcp/'{print $NF}' | sort  | uniq -c
      1 ESTABLISHED
      4 LISTEN
[root@bogon test]# netstat -ant | grep "tcp" | awk '{print $NF}' | sort  | uniq -c
      1 ESTABLISHED
      4 LISTEN
统计网站地址出现次数
[root@localhost ~]# vim test.txt
http://www.163.com
http://www.163.com
http://www.163.com
http://www.baidu.com
http://www.baidu.com
http://www.baidu.com
http://www.baidu.com
http://www.cnblogs.com
http://www.qq.com
http://www.163.com
http://www.baidu.com
http://www.baidu.com
http://www.qq.com
http://www.163.com
http://www.baidu.com
方式一:
[root@localhost ~]# awk -F "[/]+" '{print $2}' test.txt | sort | uniq -c
方式二:
[root@localhost ~]# awk -F "[/]+" '{A[$2]++}END{for (B in A){print B,A[B]}}' test.txt

四、Seq

用于生成一个数到另一个数之间的所有整数

语法:
seq [选项]... 尾数
seq [选项]... 首数 尾数
seq [选项]... 首数 增量 尾数
选项:
-f:指定输出格式
-s:指定分隔符,默认分隔符是\n(回车)
-w:指定输出数字同宽,与-f部分作用相似,不可与-f选项同时使用

输出从 1 到 5 的整数
shell中常用命令-Cut、Sort、Uniq、Seq、Wc_第5张图片
输出从1到10,间隔为2的所有整数,可以用来输出奇数或偶数
shell中常用命令-Cut、Sort、Uniq、Seq、Wc_第6张图片
指定输出格式

数字位数为三位,不足补空格
[root@localhost test]# seq -f '%3g' 1 5
数字位数为三位,不足补 0
[root@localhost test]# seq -f '%03g' 1 5
在test后面将数字位数为二位,不足补0
[root@localhost test]# seq -f 'test%02g' 1 5

指定分隔符

空格作为分隔符
[root@localhost test]# seq -s ' ' 1 5
中划线作为分隔符
[root@localhost test]# seq -s '-' 1 5

指定输出数字同宽

[root@localhost test]# seq -w 6 11

shell中常用命令-Cut、Sort、Uniq、Seq、Wc_第7张图片
组合使用

#普通输出
[root@localhost test]# seq 98 102
#输出同宽
[root@localhost test]# seq -w 98 102
#指定分隔符,同宽输出
[root@localhost test]# seq -s'-' -w 98 102

shell中常用命令-Cut、Sort、Uniq、Seq、Wc_第8张图片

五、Wc

wc命令打印每个输入文件的新行、单词和字节数

语法:
wc [选项]... [文件]...
选项:
-c:统计字节数,包含空格tab键
-m:统计字符数,不能与-c一起使用
-l:统计行数
-L:显示最长行的长度
-w:统计字数,
[root@localhost test]# wc -c 1.txt

shell中常用命令-Cut、Sort、Uniq、Seq、Wc_第9张图片

[root@localhost test]# wc -m 1.txt

shell中常用命令-Cut、Sort、Uniq、Seq、Wc_第10张图片

统计行数
[root@localhost test]# wc -l 1.txt

shell中常用命令-Cut、Sort、Uniq、Seq、Wc_第11张图片

找出最长行长度
[root@localhost test]# wc -L 1.txt

shell中常用命令-Cut、Sort、Uniq、Seq、Wc_第12张图片

把7777看作一个单词
[root@localhost test]# wc -w 1.txt

shell中常用命令-Cut、Sort、Uniq、Seq、Wc_第13张图片

你可能感兴趣的