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 差集