linux三剑客:sed awk grep

正则表达式

基础正则

grep '^str' log.txt :'str' 开头的行
grep 'str$' log.txt :以 'str'结尾的行 
grep 'str' log.txt   :  存在'str'的行 
^$ :空行
grep -v '^$' log.txt :排除文件中的空行


'.'  :匹配任意一个字符
grep '\.$' log.txt :匹配文件中 以 . 结尾的行
grep '[.]$' log.txt


'*'  :前一个字符连续出现0次或0次以上
'?' :前一个字符连续出现0次或者1次
grep '^.*t' log.txt :匹配最大前缀字符串以 't' 结尾


'[abc]' :匹配任何一个字符(a或b或c)
[a-z] , [A-Z][0-9][a-Z0-9]
[]里面的内容去掉特殊含义:[.] :匹配'.'
[^abc] :取反,排除a或b或c的内容

扩展正则

+ :前一个字符连续出现1次或者1次以上
egrep '0+' log.txt
egrep '[0-9]+' log.txt :匹配文件中连续的数字

| :或者
egrep 'baudu|baidu' log.txt

() :被括起来的内容,表示一个整体
egrep 'ba(i|u)du' log.txt

{} :连续出现
't{n,m}' :前一个字母 t 至少连续出现n次,最多出现m次    >=n , <=m
't{n}' :前一个字母 t 连续出现n次    ==n
'{n,}' :  >=n
'{,m}' : <=m

grep

grep 命令用于查找文件里符合条件的字符串。

参数含义
-E==egrep支持扩展正则
-c计算符合样式的行数
-v显示不包含匹配文本的所有行
-i忽略字符大小写的差别
-n显示行号
-o只显示匹配PATTERN 部分
-w只显示全字符合的行,精确匹配

sed

sed是一种非交互式的编辑器,能执行与编辑器vi相同的编辑任务。使用者只能在命令行输入编辑命令、指定文件名,然后再屏幕上查看输出。sed编辑器没有破坏性,不会修改文件,除非使用shell重定向来保存输出结果。默认情况下,所有的输出行都被打印到屏幕上。

sed命令行格式:sed [选项] 'command' 输入文本

sed常用的选项:

  • -n:默认所有的stdin都会输出到屏幕上,加入-n只会打印被sed处理的行
  • -r:sed使用扩展正则
  • -i:直接修改文档读取的内容,不在屏幕上输出

sed操作命令:

  • a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
  • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
  • d :删除,所以 d 后面通常不接任何咚咚;
  • i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
  • p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
  • s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法

案例:

`查找`:p
1、打印出匹配能匹配到 'tyq' 的行
sed -n '/tyq/p' sed.txt

`删除`:d
1、删除第三行,其余行打印到屏幕
sed '3d' sed.txt

2、删除从第三行到最后一行的内容
sed '3,$d' sed.txt

3、删除所有包含 'tyq' 的行
sed '/tyq/d' sed.txt

`替换`:s
1、把'west'替换成'north'
sed 's/west/north/g' sed.txt
-g:表示在行内全局替换,默认是将每一行的第一west替换为north

`追加`:a , i ,c

sed '/^north /a hello,world' sed.txt

字符串'hello,world'被加在以north开头,north后面跟一个空格的各行之后。
-i:类似与a命令,加在当前行前面

-c:将已有的文本修改成新的文本
sed '/east/c hello' sed.txt

awk

取行

在这里插入图片描述

取列

  • -F:指定分隔符,指定每一列结束标记(默认是空格,连续的空格,tab)
  • $数字:取出某一列,
  • $0:整行的内容
  • $NF:表示最后一列
  • {print xxx}
    在这里插入图片描述
    案例:取出网卡ip地址
    在这里插入图片描述

匹配模式

  • ~:包含
  • !~:不包含
  • BEGIN{} :里面内容会在awk读取文件之前执行
  • END{}:在awk读取文件之后执行

在这里插入图片描述

awk数组

  • 统计日志
  • 统计次数:统计每一个ip出现的次数,统计每个用户被攻击的次数
  • 统计流量:统计每个ip消耗的流量

数组一般的定义和使用:
在这里插入图片描述

案例:统计网站的访问次数
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值