文本处理篇
本章节写的是文本处理,文本处理就是对想要查询的信息进行筛选过滤整合为目的,这些的查询命令对后续的脚本编写起到非常关键的作用…所谓的脚本就是命令的集合,只要把基本命令进行理解运用了,写起脚本来就“易如反掌”…
- “三剑客” 信息收索处理(grep、awk、sed)
- grep 文本搜索工具
-v: 反向选取,只显示不符合模式的行
-o: 只显示被模式匹配到的字串,而不是整个行
-i: 不区分字符大小写
-E: 使用扩展的正则表达式
例如:查找/etc/passwd下的是 root 字符的信息
[root@deng-120 ~]# cat /etc/passwd | grep "root"
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
例如:查找/etc/passwd下的是 root 字符的信息
[root@deng-120 /test]# cat passwd | grep -o "root"
root
root
root
root
例如:查找/etc/passwd下的不是 root 字符的信息
[root@deng-120 ~]# cat /etc/passwd | grep -v "root"
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
查询信息省略很多行...查询信息仅供参考
例如:创建一个新文件写点内容,查找 zhang.txt 文件含有 g 的信息
[root@deng-120 /test]# cat zheng.txt | grep -i "g"
GG1
G11
G1
不论大小G都能匹配出来
- head, tail 搜索察看某列的信息
例如:head 察看 /etc/passwd 头部 第一二行的信息
[root@deng-120 /test]# cat /etc/passwd | head -n 2
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
-n 代表行数
例如:tail 察看 /etc/passwd 尾部 第三四行的信息
[root@deng-120 /test]# cat /etc/passwd | tail -n 3
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
deng10:x:1030:1030::/home/deng10:/bin/bash
abc321:x:1031:1009:Phone-number abc321:/home/abc321:/bin/bash
-n 代表行数
- wc 命令用来计算数字
-l 统计总共多少行;对 行敏感,每一行都是一个独立的信息
-c 显示字节数
-w 显示单词数
[root@deng-120 ~]# cat /etc/passwd | wc -l
37 统计 /etc/passwd 有多少个用户
[root@deng-120 ~]# cat /etc/passwd | wc -c
1627 统计 /etc/passwd 有多少字节数
[root@deng-120 ~]# cat /etc/passwd | wc -w
47 统计 /etc/passwd 有多少字单词数
- srot 命令将文件进行排序
-f: 忽略字符大小写
-n: 以数值大小进行排序;不加 n默认按照数字排列方式,排序
-r: 降序排序; 配合:字母排序,数字排序
-u: 移除重复的行,具有相同内容的行只保留一个
-t: 指定排序依据的 分割符,不指定则默认以 “空格” 为分割符
-k: 以第几列为依据
- uniq 命令用于报告或忽略文件中的重复行,一般与sort命令结合使用
-c:统计每行重复的次数;排序后,统计重复次数,可以获得某些重复值。
-u:只显示没有重复的行;
-d:只显示重复过的行
察看备份的日志文件,对 ip 数量进行统计
[root@deng-120 ~]# cat acc | awk -F " " '{print $1}' | sort | uniq -c | sort -n
6 192.168.10.167
7 192.168.10.70
8 192.168.10.169
8 192.168.10.26
13 192.168.10.149
16 192.168.10.161
18 192.168.10.112
.....
- tr 简易的替换工具,用于察看替换,而不能更改配置文件
sed 都可以实现它的功能
察看 /etc/passwd 文件,把 bin 换成 abc
[root@deng-120 ~]# cat /etc/passwd | tail -n 2 | tr "bin" "abc"
decg10:x:1030:1030::/home/decg10:/abc/aash
aac321:x:1031:1009:Phoce-cumaer aac321:/home/aac321:/abc/aash
- cut 简易文本切割
awk 都可以实现它的功能
-d: 表示以什么作为分隔符,进行切割,默认是空格
-f: 选择哪几项进行输出。如:f1表示切割出来的第一项
切割 /etc/passwd 文件,以 : 为分隔符切割第一行
[root@deng-120 ~]# cat /etc/passwd | tail -n 2 | cut -d: -f1
deng10
abc321
讲述grep的一些知识点,以上知识点都与要结合连贯运用…
一个小小知识点的背后蕴藏着大大的学问,知识点的结合就是学习的目的…