正则表达式与sed工具
1、正则表达式通俗来讲,正则表达式是一种字符串的匹配方式,比如使用星号“*”来匹配任意的字符等。正则表达式实际上是一个匹配模板,当bash执行这个正则表达式时,就会将所有的输入数据与匹配模板匹配,匹配不成功的数据将会被过滤掉。 表1.常用的元字符
表2.常用的限定符
表3.常用的反义代码
表4.扩展正则表达式
2、sed工具
当用sed命令对文本进行处理的时候,sed先读取对象的文本文件的第一行到模式空间中。 当有内容进入“模式空间”时,sed的编辑命令对模式空间中的内容进行编辑操作(修改,替换,删除,追加,显示等等) 模式空间中的内容编辑处理完成之后,sed把此内容通过标准输出(默认为显示器)打印出来,并删除模式空间中的内容。 第一行处理结束。从新读取第二行的内容进行处理,直到最后一行。 2.1.sed基本语法
Sed [参数选项] {脚本指令} [输入文件] 2.2. sed的命令和选项:
2.2.1.新增 在某一行后面加入新内容 sed ‘/匹配项/a新增项’文件名 匹配某一行,在这行前面加入新内容 sed ‘/匹配项/i新增项’文件名 在某一行的后面加入新内容 sed ‘3a 新增项’文件名 匹配某一行,在这行前面加入新内容 sed ‘3i 新增项’文件名 匹配某一行,在某一行的后面读入某文件的内容 sed ‘/匹配项/r 新增文件’ 文件名 匹配某一内容,并将该内容写到其他文件中 Sed ‘/匹配项/w 其他文件名’文件名 删除所有空行并在每一行的后面增加一个空行 sed ‘/^$/d;G’ 文件名 匹配某一行,把这一行加到所有行的后面 sed ‘/匹配项/h;G’文件名 2.2.2.替换 匹配某一内容并将该行第一个该内容替换 sed ‘s/匹配项/替换项/’文件名 匹配某一内容并全部替换该内容 sed ‘s/匹配项/替换项/g’文件名 匹配某一内容,并将该行内的另一内容替换 sed ‘/匹配项1/s/匹配项2/替换项2/’文件名 匹配某一项,并将含有该内容的整行替换 sed ‘/匹配项/c替换项’文件名 2.2.3.删除 删除第几行 sed ‘3d’文件名 sed ‘$d’文件名 匹配某一行并删除 sed ‘/匹配项/d’文件名 删除第几行到第几行 sed ‘2,5d’文件名 删除文中所有字母 sed ‘s/[a-zA-Z]//g’文件名 删除文中所有数字 sed ‘s/[0-9]//g’文件名 删除文中的基数行 sed '1~2d' tmp 注意:如果要直接修改文件,则加入参数-i 3、总结 本文主要整理了正则表达式与sed的基本用法,后续将继续整理awk的基本用法。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |