sort和uniq命令

1.sort的使用:
sort命令将许多不同的域按不同的列顺序分类。当查阅注册文件或为另一用户对下载文件重排文本列时,sort工具很方便。实际上,使用其他UNIX工具时,已假定工作文件已经被分过类。无论如何,分类文件比不分类文件看起来更有意义。
sort命令的一般格式为:
   sort -cmu -o output_file [other options] +pos1 +pos2 input_files
下面简要介绍一下 sort的参数:
-c 测试文件是否已经分类。
-m 合并两个分类文件。
-u 删除所有复制行。
-o 存储sort结果的输出文件名。
-b 使用域进行分类时,忽略第一个空格。
-n 指定分类是域上的数字分类。
-t 域分隔符;用非空格或 tab键分隔域。
-r 对分类次序或比较求逆。
+n n为域号。使用此域号开始分类。
n n为域号。在分类比较时忽略此域,一般与 +n一起使用。
post1 传递到m,n。m为域号,n为开始分类字符数;
首先:建立一个文件luanxu.txt(内容如下)
Jack
Hello
This
is
a
test
Japan
American
Australia

举例:
进行排序 并打印到屏幕
sort luanxu.txt

查看文件是否已经分类:
sort -c luanxu.txt

将文件进行逆序排列:
sort -t: -r luanxu.txt

将重复的去掉
sort -u luanxu.txt

在第1域进行分类,可以使用 -k4
对类域进行分类,使用-k4选项
sort -t: -k4 show

show中内容
Boys in Company C:HK:192:2192
Alien:HK:119:1982
The Hill:KL:63:2972
Aliens:HK:301:4102
A few Good Men:KL:445:5851
Toy Story:HK:239:3972



按第四个域递减
sort -t: -r -k4 -k1 show


sort +0 -2 +3 show
先按0域分类  忽略2域  在按照3域分类

按域4反序排列并输出第一列
sort -t: -r -k4 show|head -1

按域4反序排列并输出倒数第一列
sort -t: -r -k4 show|tail -1

寻找类域进行输出awk
sort -t: -r -k4 show|head -1| awk -F: '{ print $1}'


2.uniq的使用
uniq用来从一个文本文件中去除或禁止重复行。一般uniq假定文件已分类,并且结果正确。
可以认为uniq有点像sort命令中唯一性选项。对,在某种程度上讲正是如此,但两者有一
个重要区别。sort的唯一性选项去除所有重复行,而uniq命令并不这样做。重复行是什么?在
uniq里意即持续不断重复出现的行,中间不夹杂任何其他文本。
命令格式:
uniq -u d c -f input-file out-file
-u 只显示不重复行。
-d 只显示有重复数据行,每种重复行只显示其中一行
-c 打印每一重复行出现次数。
-f n为数字,前n个域被忽略。
一些系统不识别-f选项,这时替代使用-n。
现在乱序的文件内容如下:
Jack
Jack
Jack
Hello
This
is
a
test
Japan
American
Australia
is
are
who
jack
Jack
Hello
Smith
John

uniq -c luanxu.txt
uniq -d luanxu.txt




参考书籍:shell脚本学习
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值