sed:StreamEditor文本流编辑,sed是一个非交互式的面向字符流的编辑器。能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上。还可以对原文件改动,但是不会再屏幕上返回结果。
sed命令的语法格式:
sed的命令格式:sed[option]'sedcommand'filename
sed的脚本格式:sed[option]-f'sedscript'filename
sed命令的选项(option):
-n:只打印模式匹配的行
-e:直接在命令行模式上进行sed动作编辑,此为默认选项
-f:将sed的动作写在一个文件内,用–ffilename执行filename内的sed动作
-r:支持扩展表达式
-i:直接修改文件内容
sed在文件中查询文本的方式:
1)使用行号,可以是一个简单数字,或是一个行号范围
xx为行号
x,y表示行号从x到y
/pattern查询包含模式的行
/pattern/pattern查询包含两个模式的行
pattern/,x在给定行号上查询包含模式的行
x,/pattern/通过行号和模式查询匹配的行
x,y!查询不包含指定行号x和y的行
2)使用正则表达式、扩展正则表达式(必须结合-r选项)
^锚点行首的符合条件的内容,用法格式"^pattern"
$锚点行首的符合条件的内容,用法格式"pattern$"
^$空白行
.匹配任意单个字符
*匹配紧挨在前面的字符任意次(0,1,多次)
.*匹配任意长度的任意字符
\?匹配紧挨在前面的字符0次或1次
\{m,n\}匹配其前面的字符至少m次,至多n次
\{m,\}匹配其前面的字符至少m次
\{m\}精确匹配前面的m次\{0,n\}:0到n次
\<锚点词首----相当于\b,用法格式:\<pattern
\>锚点词尾,用法格式:\>pattern
\<pattern\>单词锚点
\(\)分组,用法格式:\(pattern\),引用\1,\2
[]匹配指定范围内的任意单个字符
[^]匹配指定范围外的任意单个字符
[:digit:]所有数字,相当于0-9,[0-9]--->[[:digit:]]
[:lower:]所有的小写字母
[:upper:]所有的大写字母
[:alpha:]所有的字母
[:alnum:]相当于0-9a-zA-Z
[:space:]空白字符
[:punct:]所有标点符号
复制代码