sed(Stream EDitor)行编辑器(全屏编辑器:vi)
sed:显示模式空间
默认不编辑文件,仅对模式空间中的数据做处理
而后,处理结束后,将模式显示在屏幕上
sed -n ‘AddressCommand‘ file ...
单/双引号都可以,双引号可实现变量替换
-n:静默模式 不再默认显示模式空间中的内容
-i:直接修改源文件
-e SCRIPT -e SCRIPT:可以同时执行多个脚本
-f /PATH/TO/SED_SCRIPT/:
sed -f path/to/script file
-r:表示使用扩展正则表达式
Address:地址
1.起始行,结束行
比如1,100
$:最后一行
$-1 :倒数第一行
2./RegExp/利用模式匹配,需要两个斜杠包括起来
比如/^root
3./pattrnl/,/pattern2/
第一次被pattrn1匹配到的行开始,到第一次被pattrn2匹配到的行结束,这中间的所有行
4.LineNumber
指定的行
5.起始行,+N
从起始行开始,向后的N行
Command:命令
d:删除符合条件的行
p:显示符合条件的行
a \string: 在指定的行后面追加新行,内容为string
i \string: 在指定的行前面追加新行,内容为string
r FILE:将指定的文件内容添加至符合条件的行处
w FILE:将指定的文件内容另存至指定文件中
s /pattern/string/修饰符:查找pattern(可用正则表达式)并替换成string
(默认只替换每行中第一次被模式匹配到的字符串)
g:全局替换
i:查找时忽略大小写
s///:s###,s@@@也可
分隔符不仅限于/ 只要查找替换的字符不是分隔符
&:引用模式匹配整个串
课练1:编辑一个txt文件
①like-liker love-lover
②like->Like love->Love
课练2:删除/etc/grub.conf文件中行首的空白符
课练3:替换/etc/inittab文件中“id:5:initdefault:”一行中的数字为3
课练4:删除某文件中的空白行
课练5:删除某文件中开头的#号.(eg:#abc)
课练6:删除某文件开头的#号及后面的空白字符,但要求#后面必须有空白字符.(# abc)
课练7:删除某文件以空白字符后面跟#类的行中的开头的空白字符及#.( #abc)
课练8:取出一个文件路径的父目录名称
本文出自 “11160930” 博客,请务必保留此出处http://11170930.blog.51cto.com/11160930/1748900
原文地址:http://11170930.blog.51cto.com/11160930/1748900