欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

sort、uniq、cut命令操作

程序员文章站 2024-02-23 23:26:22
...

一、sort

(1)作用

  • sort命令的作用是将指定的字段、文件的内容进行排序,并且将排序的结果输出。
  • sort既可以从文件内的数据进行读取,也可以通过stdin标准输出从键盘读取,也可以读取命令执行后获取的字段

格式: sort 选项 文件名

(2)常用选项

-r 以降序的方式排列指定内容或字段
-d 以升序的方式排列指定内容或字段
-n 以升序的方式排列指定内容或字段,这个是判断整数的,不加n两位数的数字是无法识别的
-u 以升序的方式排列指定内容或字段,但是会删除连续重复的行只留下一行

(3)案例

1、使用-r选项

[[email protected] ~]# cat aaa.txt 
6
4
7
8
5
3
[[email protected] ~]# sort -r aaa.txt 
8
7
6
5
4
3

2、使用-d选项

[[email protected] ~]# cat aaa.txt 
6
4
7
8
5
3
[[email protected] ~]# sort -d aaa.txt 
3
4
5
6
7
8

3、使用-n选项

[[email protected] ~]# cat aaa.txt 
6
44
7
8
57
3
[[email protected] ~]# sort -d aaa.txt 
3
44
57
6
7
8
[[email protected] ~]# sort -n aaa.txt 
3
6
7
8
44
57

4、使用-u选项

[[email protected] ~]# cat aaa.txt 
3
9
4
4
4
5
1
6
7
7
7
8
[[email protected] ~]# sort -u aaa.txt 
1
3
4
5
6
7
8
9

二、Uniq

(1)作用

  • 可以用来删除连续重复的行,也可以把连续重复的行进行统计输出出现的次数

格式:unqi 选项 文件名

(2)常用选项

-c 输出所有行出现的个数
-u 删除所有连续重复的行,并且不任何连续重复的行,和sort -u 类似,但是sort会升序排列并且会显示连续重复行中的一行

(3)案例

1、使用选项-c

[[email protected] ~]# cat aaa.txt 
3
9
4
4
4
5
1
6
7
7
7
8
[[email protected] ~]# uniq -c aaa.txt 
      1 3
      1 9
      3 4
      1 5
      1 1
      1 6
      3 7
      1 8

2、使用选项-u

[[email protected] ~]# cat aaa.txt 
3
9
4
4
4
5
1
6
7
7
7
8
[[email protected] ~]# uniq -u aaa.txt 
3
9
5
1
6
8

三、cut

(1)作用

  • cut命令有点像简易版的awk,以列来分割来处理行,读取用户想要的字段

格式:cut 选项 文件名

(2)常用选项

-d -d指定行的分隔符,即使是空也必须指定,不想awk默认分隔符是空
-f -f和在awk中使用位置变量相似,即选取由分隔符分割后的字段,-f1就是第一字段-f2就是第二字段
-c 这个是输出一个一个字节数,一个数字、字母占一个字节,一个汉字占三个字节

(3)案例

1、使用-d选项

[[email protected] ~]# cat aaa.txt 
a b c 目录
[[email protected] ~]# cut -d' ' -f2 aaa.txt 
b

2、使用-f选项

[[email protected] ~]# cat aaa.txt 
a b c 目录
[[email protected] ~]# cut -f3 aaa.txt 
a b c 目录
[[email protected] ~]# cut -d' ' -f4 aaa.txt 
目录

3、使用-c选项

[[email protected] ~]# cat aaa.txt 
a b c 目录
[[email protected] ~]# cut -c1 aaa.txt 
a
[[email protected] ~]# cut -c2 aaa.txt 
 
[[email protected] ~]# cut -c3 aaa.txt 
b
[[email protected] ~]# cut -c4 aaa.txt 
 
[[email protected] ~]# cut -c5 aaa.txt 
c
[[email protected] ~]# cut -c7 aaa.txt [[email protected] ~]# cut -c7,9  aaa.txt