引入
1.文件系统
文件系统是操作系统操作计算机硬盘的应用程序
2.文件
文件是文件系统提供给用户操作硬盘的一种功能
3.字符处理
-
sort : 排序文本, 默认对整列有效
-
wc : 统计文件行数, 字节, 字符数
-
uniq : 取出重复行
-
cut : 把文本切分类似于awk
-
sed : 流式编辑器, 现规定好规则, 一次只处理一行内容
-
awk : 用于格式化处理文件, 处理有规律的文件
-
grep : 强大的文本搜索工具 (文件过滤)
一.排序: sort
1.应用场景
在有些情况下, 需要对一个无序的文本文件进行数据的排序操作, 这时候就要用到 sort 了
2.常用选项
选项 | 作用 |
---|---|
-t | 指定分隔符, 默认以空格为分隔符 |
-k | 指定某列来进行排序 |
-n | 依照数值大小排序,而不是以字符串方式 |
-r | 倒序 |
3.应用示例
默认排序:以第一个字符作比较,也可以说对应的是ASCLL表上对应的数字的比较,默认升序
[root@shawn ~]# cat a.txt
c:2
d:444
a:5
e:1
f:11
[root@shawn ~]# sort a.txt
a:5
c:2
d:444
e:1
f:11
"-t:","-k2":以":"做分隔符,对比第二个字符(默认一个一个字符做比较)
[root@shawn ~]# sort -t: -k2 a.txt
e:1
f:11
c:2
d:444
a:5
"-n":依照数值大小排序,而不是以字符串方式一个一个对比
[root@shawn ~]# sort -t: -k2 -n a.txt
e:1
c:2
a:5
f:11
d:444
"-r":倒序排列
[root@shawn ~]# sort -t: -k2 -n -r a.txt
d:444
f:11
a:5
c:2
e:1
二.去重: uniq
1.应用场景
用于检查及删除文本文件中重复出现的行列, 一般与sort命令结合使用
2.常用选项
选项 | 作用 |
---|---|
-c | 在每列的旁边显示出现的次数 |
-d | 仅显示重复出现的行列 |
-u | 仅显示出现一次的行列 |
3.应用示例
与"sort"配合去重
[root@shawn ~]# cat a.txt
song
123
shawn
123
shawn
xing
[root@shawn ~]# sort a.txt
123
123
shawn
shawn
song
xing
[root@shawn ~]# sort a.txt | uniq
123
shawn
song
xing
"-c": 显示重复次数
[root@shawn ~]# sort a.txt | uniq -c
2 123
2 shawn
1 song
1 xing
"-d": 仅显示重复出现的行列
[root@shawn ~]# sort a.txt | uniq -d
123
shawn
"-u"; 仅显示出现一次的行列
[root@shawn ~]# sort a.txt | uniq -u
song
xing
三.截取字段: cut
1.应用场景
用来截取显示行中的指定部分, 与awk类似
2.常用选项
选项 | 作用 |
---|---|
-d | 指定字段的分隔符, 默认字段分隔符为"tab" |
-f | 显示指定的内容 |
3.应用示例
以分隔符":"分隔字符,截取"1-4"段
[root@shawn ~]# cat a.txt
root:x:0:0:root:/root:/bin/bash
[root@shawn ~]# cut -d ":" -f1-4 a.txt
root:x:0:0
以分隔符":"分隔字符,截取"1,3,6,7"段
[root@shawn ~]# cut -d ":" -f1,3,6,7 a.txt
root:0:/root:/bin/bash
四.tr命令
替换或删除
1.参数
"-d" :删除
tr "xxx" "XXX" :替换
2.应用示例
替换
[root@shawn ~]# cat a.txt
root:x:0:0:root:/root:/bin/bash
[root@shawn ~]# cat a.txt | tr "root" "ROOT"
ROOT:x:0:0:ROOT:/ROOT:/bin/bash
"-d" : 删除
[root@shawn ~]# cat a.txt | tr -d "root"
:x:0:0::/:/bin/bash
对字符进行替换,是每个字符都替换,而不是匹配一整个单词替换
[root@shawn ~]# echo "Hello Songhaixing 123" > a.txt
[root@shawn ~]# cat a.txt
Hello Songhaixing 123
[root@shawn ~]# tr "Song" "sONG" < a.txt
HellO sONGhaixiNG 123
五.WC命令
统计数字
1.常用选项
选项 | 作用 |
---|---|
-c | 统计文件的Bytes数 |
-l | 统计文件的行数 |
-w | 统计文件的单词数, 默认以空白字符为分隔符 |
2.应用示例
"-c": 查看大小
[root@shawn ~]# cat a.txt
Hello Songhaixing 123
hello nihao
[root@shawn ~]# ll a.txt
-rw-r--r-- 1 root root 34 10月 27 22:12 a.txt
[root@shawn ~]# wc -c a.txt
34 a.txt
"-l": 查看行数
[root@shawn ~]# wc -l a.txt
2 a.txt
"-w": 统计单词个数
[root@shawn ~]# wc -w a.txt
5 a.txt