在实际生产环境中,Shell脚本通常与正则表达式,文本处理工具结合使用。本章我们介绍正则表达式与Linux系统中两个功能强大的文本处理工具。
基础正则表达式的使用
(准备一个名为test.txt的测试文件)
(1)查找特定字符(‘-n表示显示行号’‘-i表示不区分大小写’)
若反向选择,查找不包含‘the’字符的行,则需要通过‘-n’实现
(2)用[]来查找字符([io]表示匹配‘i’‘o’)
查找重复字符“oo”
查找oo前面不是“w”的字符串,通过反向选择“[^]”实现
“oo”前面不存在小写字母
查找包含数字的行
(3)查找以‘the’为行首的行
查询以小写字母开头的行
查询以大写字母为开头的行
查询不以字母为开头的行
^在[]内外的作用不一样,在[]里表示反向选择,在[]外表示定位行首。
查找‘w??d’的字符
查询至少两个以上oo
(4)显示行号和匹配关键字符
(5)显示行号过滤指定开始的字符
(6)匹配任意单个字符显示行号
(7)匹配指定字符内容
(8)转义字符使用过滤IP地址
2.扩展正则表达式的应用
(1)查找重复字符
(2)匹配任意前一个字符串
(2)使用或者查找字符
(3)查找组字符
3、基础正则表达式和扩展正则表达式区别
sed基本应用
(1)查询符合条件的文本
查询所有内容
查询地三行
查询3-5行
查询所有奇数行(n表示下一行)
查询所有偶数行(n表示下一行)
查询1-5行之间的奇数行
查询第十行到末尾的偶数行
查询包含the的行
查询从第四行到第一个包含the的行
查询包含the的行所在的行号,=用来查询行号
查询以PI开头的行
查询包含单词wood的行,<,>代表单词边界
(2)删除符合条件的文本
删除第三行
删除以小写字母开头的行
(4)替换符合条件的文本
替换数据将yun替换为YUN
在IP地址前边添加注释行
将第一行和第三行数据迁移到17行后面
4、awk的应用
(1)显示文件内容
(2)查看第一列和第二列数据
(3)第一列和第二列数据使用#号作为分隔符
(4)实现第一列数据
(5)查看第一行和第二行
(5)显示第七列数据