sed作为行编辑器对文本进行编辑
sed编辑文件,却不改变源文件
sed的工作原理:
指定一个文本文件,一次读取文本文件中每行的内容,读取到模式空间中(PATTERN SPACE),在模式空间中进行文本匹配(正则表达式),对匹配后的内容进行修改(替换,删除,修改,打印,保存)
用法:
sed [参数] “sed自己独立的用法格式的语句” [文本文件]
参数选项:
-n 拒绝默认显示
-r 指定使用扩展的正则表达式
匹配IP
1、所有的、都不要
2、|或者
-e 写script
-f 指定脚本文件
-l 指定文本换行的长度
-i 直接修改文件内容
地址定界方式
1、直接匹配数值
sed -n ‘5,7’p 文本文件
2、d ~ 步长
sed -n ‘1~3p’ 文本文件
3、$指定行尾
sed -n ‘10~$p’ 文本文件
4、/正则/
sed -n '/k{5,}/,$p' 文本文件
5、0,addr
addr可以为 数字/$/正则表达式
sed -n ‘0,/k、{5,、}p’ 文本文件
6、addr,+N
配置addr行到addr后N行
sed -n '/fd/,+5p' 文本文件
常见命令
p print 打印
d 删除
c 替换
sed "/aaa/c A" 文本文件
n N 读取/添加 模式匹配到行的下一行内容,在对其进行操作
w 保存文件内容到一个新的文件
s 文本内容替换,默认替换模式空间匹配到的的一项内容
语法格式:s/pattern/字符串/
中间的/可以替换为任意一个特殊字符
g 全部
1 2 和正则表达式的分组相同,实现反向应用
指定某个匹配项进行修改替换
& 调用前面匹配的内容
sed "s/r..t/&er/g" 文件
w
p
sed的高级应用
模式空间 -- hold space