目录 一、正则表达式1、正则表达式的作用正则表达式的组成1)正则表达式的作用 针对文件或者文本内容进行处理 帮助用户快速查找文本文件内容 2)正则表达式的组成 普通字符 大写A-Z 小写a-z 符号 元字符 2、正则表达式的常见选项和正则表达式常见的元字符1)正则表达式grep常见的选项 -n:显示行号 -o:只显示匹配内容 -i:不区分大写或者小写字母 -v:取反 -E:支持扩展 -q:静默执行 -w: 识别为单词 -c: 统计匹配的行数 2)正则表达式的元字符 ^:匹配行起始内容 $:匹配行结束内容 .:匹配任意单字符 .*:匹配任意字符 []:匹配括号里边的内容 [-]:匹配括号里边内容的范围 {n}:匹配的范围的次数 [n1-n2]:匹配开始和结束内容 { n,m }:重复前面的一个字符n到m次 { n, }:重复前面的一个字符至少n次 [^]:匹配括号之外的任意字符 \:转义字符 \<: 固定词首 \>: 固定词尾 3、正则表达式的基本应用1)过滤关键字是the显示出来 [root@centos01 ~]# grep -n 'the' test.txt 2)查看行开始是the显示出来 [root@centos01 ~]# grep -n '^the' test.txt 3)匹配任意单个字符 [root@centos01 ~]# grep -n 'w.d' test.txt 4)匹配括号里边的内容 [root@centos01 ~]# grep -n 'sh[io]rt' test.txt 5)只显示匹配的内容 [root@centos01 ~]# grep -o 'wod' test.txt 6)通配符应用匹配开始是w结束是d中间的任意字符 [root@centos01 ~]# grep -n 'w*d' test.txt 7)转移字符的基本应用,过滤IP地址信息 [root@centos01 ~]# grep -n -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" test.txt 4、扩展正则表达式1)扩展正则表示常见的元字符 +:重复一次或者多次前面字符显示出来 ?:显示当前字母前一个字符 |:或者,显示多个字符 ():查找组字符串 ()+:辨别多个重复组 2)扩展正则表达式的应用
二、sed和awk1、sed的作用和sed的工作流程1)sed的作用 sed是一个文本文件解析转换工具 用于读取、修改、显示数据 2)sed的作用流程 读取数据:从文件、输入、管道命令中读取数据,临时存储数据 执行:根据sed命令在模式操作空间中进行无交互修改数据 显示:将文本文件的修改结果进行打印显示 2、sed命令常见的选项和操作符1)sed命令选项 -n:显示处理后的结果 -h:显示帮助 -e:指定命令或者脚本处理输入的文本文件 -f:指定脚本处理输入的文本文件 -i:直接编辑文本文件 2)sed的操作符号 a:添加内容 d:删除内容 p:打印内容 s:替换内容 y:字符转换 c:将特定行替换成指定的内容 3、sed的基本应用1)显示1到5行数据 [root@centos01 ~]# sed -n '1,5p' test.txt 2)显示奇数行 [root@centos01 ~]# sed -n -e '1p;3p;5p' test.txt 3)删除第一行数据 [root@centos01 ~]# sed '1d' test.txt 4)删除空行 [root@centos01 ~]# sed -i '/^$/d' test.txt 5)将大写THE修改为小写the [root@centos01 ~]# sed -i 's/THE/the/' test.txt 6)ip关键字添加注释 [root@centos01 ~]# sed -i '/^ip/s/^/#/' test.txt (含有ip字符的行前面添加#) 7)迁移字符将1~5行迁移到15行后 [root@centos01 ~]# sed -i '1,5{H;d};15G' test.txt 8)将1~5行移动到15行和16行之间 [root@centos01 ~]# sed -i '1,5H;15,16G' test.txt [root@centos01 ~]#ifconfig ens32 | sed –n ‘2 s/.*inet //p’| sed ‘s/n.*//’ [root@centos01 ~]#ifconfig ens32 |sed -nr '2 s/.*et (.*) n.*/\1/gp' 4、awk的使用1)awk的作用 过滤和读取数据使用 2)awk的变量 FS:文本字段的分隔符,可以使用空格为占位符 NF:处理行数 NR:处理数据的行号 $0:处理数据的整行数据 $n:处理数据行的第几列数据 5、awk的基本应用1)显示所有内容 [root@centos01 ~]# awk '{print}' 1.txt 2)显示第一列数据 [root@centos01 ~]# awk '{print $1}' 1.txt 3)在第一列和第二列之间添加-- [root@centos01 ~]# awk '{print $1"--"$2}' 1.txt 4)显示第一行和第二行数据 [root@centos01 ~]# awk 'NR==1,NR==2{print}' 1.txt 5) sort 排序 [root@centos01 ~]#sort –nr 123 #排序 r是逆序 [root@centos01 ~]#sort 123 | uniq –c #去重,统计出现次数 [root@centos 01~]# history | awk '{print $2}' | sort |uniq -c |sort -nr |head -5 [root@centos ~]# history | awk '{print $2}' | sort |uniq -c |sort -nr |sed -n '1,5p' #将用过的命令从大到小排列,取前5个 [root@centos ~]# history | awk '{print $2}' | sort |uniq -c |sort -nr |awk 'NR<=5{print}'
测试、命令行仅输出IP地址
2.查看web的log日志,检测出异常IP cat www.new1019.xianqujingpinwang.log| sed -n '/23\/Nov\/2022:0/,/23\/Nov\/2022:12/p'|grep `date "+%d/%b"`|awk '{print $1}'|sort |uniq -c |sort -rn|wc -l #12个小时内谁访问量最多 |
原文地址:https://blog.csdn.net/youcan_doit/article/details/131674363
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://www.msipo.com/article-131.html 如若内容造成侵权/违法违规/事实不符,请联系MSIPO邮箱:3448751423@qq.com进行投诉反馈,一经查实,立即删除!
Copyright © 2023, msipo.com