本篇文章给大家分享的是有关怎么进行sed的使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
Sed默认不直接修改源文件而是通过管道或者文件读取内容将其复制到称之为模式空间的缓冲区,其指令在这个模式空间内完成并打印到屏幕上。
语法格式:
上面提到定位以行尾单位,那么行暂且定义它为地址,也就是操作对象
地址的范围有一下集中格式
n #指定唯一行号
1~2 #指定从1行开始,间隔为2也就是
$ #指定最后一行
/正则表达式/ #匹配正则表达式的操作对象
\a正则表达式a #匹配\a和a之间的正则表达式
3,5 #匹配3-5行
1,+10 #匹配1和1后面的10行内容
sed的使用选项
Sed [选项] [脚本指令] [输入文件]
选项: -n #静默输出,不打印模式空间的内容,默认情况下是自动打印的
-e 脚本 #允许多个脚本指令被执行
-f #从文件中读取指令
-l #输出的行长度
-r #扩展正则表达式
-I #直接修改源文件
指令: a (append) #追加
d (delete) #删除
s (substitution)#替换
c #更改
y #按字符替换
p #打印
q #退出
i #插入
l #打印(显示非打印字符)
L #打印(显示打印字符)
r #读入文件内容
我们找一个文件,然后来操作下
例:第一行后追加“This is a example”
[root@pan-S~]# sed "1a This is a example" /opt/fstab_Mrpan
例:第6行前追加“This isa example”#注意源文件发生改变了
[root@pan-S~]# sed -i "6i This is a example" /opt/fstab_Mrpan
例:替换命令
[root@pan-S~]# sed "s/defaults/Mr.pan/g" /opt/fstab_Mrpan
[root@pan-S~]# sed -i "3s/fstab/fstab_Mr.pan/g" /opt/fstab_Mrpan
例:更改命令
[root@pan-S~]# sed "/pan/c exit" /etc/passwd | more
例:利用正则表达式
匹配包含fstab的行单位
[root@pan-S~]# sed -i "/fstab/a This is a example" /opt/fstab_Mrpan
[root@pan-S~]# sed -n "/^$/d" /opt/fstab_Mrpan
当需要执行多个指令时可以使用 –e –f 或者分隔符分号;还可以使用分行,但是最好使用-f 文件来执行,这样的话便于修改,不容易出错。
例:删除包含example的行,替换所有的0为1
(1)# sed -e"/example/d" -e "s/0/1/g" /opt/fstab_Mrpan
(2)# sed"/example/d;s/0/1/g" /opt/fstab_Mrpan
好了,大家可以自己操作下看看有什么变化
以上就是怎么进行sed的使用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。