Linux-操作1(去重)

sort:排序

sort [option] filename

默认升序(ASCII码方式)。
-b :数值排序
-f:小写转化成大写排序
-r:降序排序
-u:去重
-n:以数值的方式排序
-t:设置分隔符(sort -t '-'
-k:指定列数(sort -k 3)

对test.txt按照第三列年龄升序排列,年龄相同时,按照第四列语文成绩升序排列
sort -n -t ' ' -k 3 -k 4 test.txt
将test.txt按照第6列英语成绩降序排列,英语成绩相同时,按照第四列语文成绩升序排列
sort -n -t ' ' -k 6r -k 4 test.txt
对test.txt的先按第4列升序排列,再按第7列升序排列,最后再对结果进行去重。(执行顺序,先排序,再去重)
sort -n -k 4 -k 7 -u test.txt

uniq: 去重

uniq [option] filename

默认删除重复行(重复行只保留一个)。
当重复的行并不相邻时,uniq 命令是不起作用的。所以一般与sort连用。

-c:去除重复行并记录出现次数(保留重复行)
-u:仅显示出现一次的行列(不保留重复行)
-d:只保留重复行

sort test.txt | uniq -c

wc:计数

wc [option] filename

默认显示顺序为行数、字数(单词数)、字节数
-w:字数
-c:字节数
-l:行数

cat:打印,即命令用于输出文件内容信息到控制台上

 cat [option] filename

-n: 由1开始对所有输出的行数编号
-b: 和-n相似,但是对于空白行不编号

文件交并补

  • 行数查询
sort test1.txt test2.txt | uniq | wc -l  并集
sort test1.txt test2.txt | uniq -d | wc -l  交集
sort test1.txt test2.txt | uniq -u | wc -l  差集
  • 内容显示
cat test1.txt test2.txt| sort | uniq  并集
cat test1.txt test2.txt| sort |  uniq -d  交集
cat test1.txt test2.txt| sort |  uniq -u  差集

猜你喜欢

转载自blog.csdn.net/weixin_44964850/article/details/125151377