一、sed的介绍
二、sed的基本选项和用法
三、sed的高级用法
四、正则表达式符号git
sed是一种流编辑器,它在没有加选项的状况下,不会对文件自己进行修改,只会显示修改结果在终端上,sed在处理空间时,会把当前行放到一个缓冲区中,称为“模式空间”,若是还须要处理,将模式空间中的行在放入‘’保持空间‘’,在须要的时候,在放到模式空间,通过一系列的处理,最终输出到终端上,sed也支持正则表达式。正则表达式
基本选项
基本选项只会把文本内容传输到模式空间进行处理。
基本选项举例
编辑命令举例
查找替换功能编辑器
是一种文本搜索,根据用户指定的“模式”对目标文本进行匹配检查,打印匹配,支持正则表达式。ide
基本正则表达式符号工具
正则表达式 | 描述 | 实例 |
---|---|---|
/ | 转义,将特殊字符转变成自己意义 | echo $PS1 和 echo \$PS1 前者的意思是输出变量的结果,后者是输出$这个字符 |
^ | 匹配行首,从行首开始皮皮额匹配 | sed 's/^#//' file 表示把全部开头为#号的所有替换成空白 |
$ | 匹配行尾一直匹配到行尾 | sed 's/.conf$/.sh/' file 表示把以.conf结尾的行替换成以.sh结尾 |
. | 除\n外,匹配任意字符 | sed 's/r..t/user/' 表示中间两个字符无论是什么,匹配两边就行 |
[ ] | 匹配包含在[字符]之中的任意一个字符 | grep "[abc]" file 表示寻找该文件中全部的小写abc字母 |
[^] | 匹配除了[ ] 以外的任意一个字符 | grep "[^a]" file 表示出了a其余字符都匹配 |
[-] | 匹配[ ] 中 - 两侧划分范围中的任意一个字符 | grep "[0-9]" file 表示全部0-9的数字都匹配 |
? | 匹配以前的项1次或0次 | grep "[0-9]\?" file 表示0-9之间任意一个数字匹配0次或者1次 |
+ | 匹配以前项1次或者屡次 | grep "[0-9]\+" file 表示0-9之间任意一个数字至少匹配一次,能够是屡次 |
* | 匹配以前项0次或者屡次 | grep "[0-9]*" file 表示0-9之间任意一个数字匹配0次或屡次 |
( ) | 匹配表达式,建立一个用于匹配的子串 | grep "([0-9][0-9])\+" file 表示的两个[ ] 中的字符是一个总体 |
{n} | 匹配以前项n次,n能够是正整数 | grep "[0-9]\{5\}" file 表示前面匹配5次 |
{n, } | 匹配以前项最少n次 | grep "[0-9]\{5,\}" file 表示前面最少匹配5次,能够是5次以上 |
{n,m} | 匹配以前项最少n次,最多m次 | grep "[0-9]\{1,3\} file 表示最少匹配1次,最多匹配3次" |
{,m} | 匹配以前最多m次 | grep "[0-9]{,3}" file 表示最少能够是0次,最多为3次 |
POSIX字符类,只匹配类型,不匹配次数spa
正则表达式 | 描述 | 举例 |
---|---|---|
[:alnum:] | 匹配任意一个字母或数字 | grep "[[:alnum:]]\+ file 表示至少一次字母或者是数字都匹配" |
[:alpha:] | 匹配任意一个字母 | grep "[[:alpha:]]\+" file 表示至少一次字母,无论大小写 |
[:blank:] | 匹配空格 | grep "^[[:blank:]]\*^$" file 表示全部的空白行 |
[:digit:] | 匹配任意一个数字 | grep "[[:digit:]]\+" file 表示匹配全部的数字 |
[:lower:] | 匹配任意一个小写字母 | grep "[[:lower:]]" file 表示全部小写字母 |
[:upper:] | 匹配任意一个大写字母 | grep "[[:upper:]]" file 表示全部代谢字母 |
[:punct:] | 匹配标点符号 | grep "[[:punct:]]" file 表示全部的标点符号 |
[:space:] | 匹配一个包括换行符,回车等在内的空白字符 | grep "[[:space:]]" file 表示全部空白字符,包括回车等 |
[:graph:] | 匹配一个能够看见且能够打印的字符 | grep "[[:graph:]]" file 表示匹配全部可见的打印字符 |
[:xdigit:] | 匹配任意一个十六进制 | grep "[[:xdigit:]]" file 匹配全部十六进制的字符 |
[:cntrl:] | 匹配一个任意控制字符 | grep "[[:cntrl:]]" file 匹配全部控制字符 |
[:print:] | 匹配任意一个能够打印的字符 | grep "[[:print:]]" file 匹配全部能够打印的字符 |
元字符3d
正则表达式 | 描述 |
---|---|
\b | 锚定单词边界与\<或 \>做用同样 |
\B | 非单词边界 |
\d | 单个数字字符 |
\D | 单个非数字字符 |
\w | 单个单词字符 |
\W | 单个非单词字符 |
\n | 换行符 |
\s | 单个空白字符 |
\S | 单个非空白字符 |
\r | 回车 |
\t | 横向制表符 |
\v | 垂直制表符 |
\f | 换页符 |