#我的第三十四堂云计算课# #Linux Shell编程及自动化运维实现 第5章 三剑客(grep、sed、awk)#

第5章 三剑客(grep、sed、awk)

一、正则表达式:被vim、sed、awk、grep调用
(一)元字符定义:元字符是这样一类字符,它们表达的是不同于字面本身的含义
(二)元字符分类:
1、基本正则表达式元字符:
(1)行首定位符:^
(2)行尾定位符:$
(3)匹配任意单个字符:.
(4)匹配前导符0到多次:*
(5)任意多个字符:.*
(6)匹配指定范围内的一个字符:[ ]
(7)匹配指定范围内的一个字符,连续的范围:[ - ]
(8)匹配不在指定组内的字符:[^]
(9)用来转义元字符 (’’ “” ),脱意符:
(10)词首定位符:<
(11)词尾定位符:>
(12)组字符:()
(13)字符x重复出现m次:x{m}
(14)字符x重复出现m次以上:x{m,}
(15)字符x重复出现m到n次:x{m,n}
2、扩展正则表达式元字符:
(1)匹配1~n个前导字符:+
(2)匹配0~1个前导字符:?
(3)匹配a或b:a|b
二、grep:过滤,查找文档中的内容
(一)分类:
1、grep
2、egrep:扩展支持正则
3、fgrep:不支持正则
(二)返回值:
1、0 是找到了
2、1 是没有
3、2 找到地儿不对
(三)参数:
1、grep -q 静默
2、grep -v 取反
3、grep -R 可以查目录下面的文件
4、grep -o 只找到这个关键字就可以
5、grep -B2前两行
6、grep -A2后两行
7、grep -C2上下两行
8、egrep -l 只要文件名
9、egrep -n 带行号
三、sed
(一)简介: sed 是一种在线的、非交互式的编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;
(二)格式:
1、sed 选项 命令 文件
2、sed 选项 –f 脚本 文件
(三)返回值:
1、都是0,对错不管。
2、只有当命令存在语法错误时,sed的退出状态才是非0
(四)sed和正则表达式:与grep一样
1、sed支持的元字符: ^、$、 .、 *、 []、 [^]、 < >、()、{}、?、 +、 |、 ( )
2、使用扩展元字符的方式:
(1)+ 转义
(2)sed -r 加-r
(五)汇总示例:
1、删除命令: d
2、替换命令: s
3、读文件命令:r
4、写文件命令:w(另存为)
5、追加命令: a(之后)
6、插入命令: i(之前)
7、替换整行命令: c
8、获取下一行命令:n
9、反向选择: !
10、多重编辑 : e
11、暂存空间 hHGgx
四 、awk
(一)语法:awk [options] ‘commands’ filenames (推荐)
1、options:例如:-F 定义输入字段分隔符,默认的分隔符是空格或制表符(tab)
2、command(时空):BEGIN{} {} END{}
(1)BEGIN{} :begin发生在行处理前(注意大写)
(2){} :行处理时,读一行执行一次
(3)END{} :行处理后
(二)内部变量:
1、FS:输入字段分隔符(默认空格)
2、OFS:输出字段分隔符
3、RS:输入记录(行)分隔符,默认换行符
4、ORS:输出记录(行)分隔符,默认换行符
5、FNR:多文件独立编号
6、NR:多文件汇总编号
7、NF:字段总数
(三)格式化输出:
1、print函数:正常输出
2、printf函数:制表式的输出

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值