三剑客grep、awk、sed;第一篇章主讲grep

文本处理篇

本章节写的是文本处理,文本处理就是对想要查询的信息进行筛选过滤整合为目的,这些的查询命令对后续的脚本编写起到非常关键的作用…所谓的脚本就是命令的集合,只要把基本命令进行理解运用了,写起脚本来就“易如反掌”…


- “三剑客” 信息收索处理(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的一些知识点,以上知识点都与要结合连贯运用…
一个小小知识点的背后蕴藏着大大的学问,知识点的结合就是学习的目的…

猜你喜欢

转载自blog.csdn.net/weixin_42867972/article/details/81453616
今日推荐