Linux 命令之 sed
来源:互联网 发布:淘宝微任务 编辑:程序博客网 时间:2024/05/22 00:13
sed
stream editor的缩写.
流编辑器,用程序的方式来编辑文本,相当的hacker啊。
sed基本上就是玩正则模式匹配,所以,玩sed的人,正则表达式一般都比较强。
AWK之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Family Name的首字符, 是贝尔实验室1977年搞出来的文本出现神器, sed比awk还要年长2-3岁。
都称得上是上古神器。
下面学习几个sed常见使用:
测试使用的文本内容
[root@localhost]# cat sed.test I love her.I love her.I love her.I love her.I love her.I love her.
1. s 替换命令
a. 把文本中的her 替换成Joey
s表示替换命令,/her/表示匹配her,/Joey/表示把匹配替换成Joey,/g 表示替换行内所有的匹配
[root@localhost]# sed "s/her/Joey/g" sed.test I love Joey.I love Joey.I love Joey.I love Joey.I love Joey.I love Joey.
上面的sed命令并没有对文件的内容改变,只是把处理过后的内容输出界面
如果要修改所操作文件的内容,可以加上 -i 参数直接修改文件内容
sed -i “s/her/Joey/g” sed.test
b. 其他一些常用的匹配:
在每行最前面加#字符:
$ sed 's/^/#/g' sed.test
在每一行最后面加—:
sed 's/$/ --- /g' sed.test
c. 多行匹配
如果我们需要一次替换多个模式,可参看下面的示例:(第一个模式把第一行到第三行的I替换成Jobs,第二个则把第3行以后的I替换成了He also)
[root@localhost]# sed '1,3s/I/Jobs/g; 3,$s/I/He also/g' sed.test Jobs love Joey.Jobs love Joey.Jobs love Joey.He also love Joey.He also love Joey.He also love Joey.
我们可以使用 & 来当做被匹配的变量,然后可以在变量左右加点东西
[root@localhost ]# sed 's/Joey/{&}/g' sed.test I love {Joey}.I love {Joey}.I love {Joey}.I love {Joey}.I love {Joey}.I love {Joey}.
d. a命令和i命令
a命令就是append, i命令就是insert,它们是用来添加行的。
在第一行插入
[root@localhost ]# sed "1 i ------------insert---------------- " sed.test ------------insert---------------- I love Joey.I love Joey.I love Joey.I love Joey.I love Joey.I love Joey.
在最后一行插入
[root@localhost ]# sed "$ a ------------insert---------------- " sed.test I love Joey.I love Joey.I love Joey.I love Joey.I love Joey.I love Joey.------------insert----------------
如果不指定位置,则每一行后面都会添加一行
e. 删除匹配行 d命令
[root@localhost]# cat sed.test I love Joey.I love Joey.I love Joey.I love Joey.I love Joey.I love Joey.------------insert---------------- [root@localhost]# sed '/insert/d' sed.test I love Joey.I love Joey.I love Joey.I love Joey.I love Joey.I love Joey.
f. 打印命令 p命令
使用 -n 可以只输出匹配的行,就像linux 的grep 命令
如果不使用-n则未匹配的正常输出,匹配的输出两次
[root@localhost luffy]# sed -n '/Joey/p' sed.test I love Joey.I love Joey.I love Joey.I love Joey.I love Joey.I love Joey.
http://coolshell.cn/articles/9104.html
http://sed.sourceforge.net/sed1line_zh-CN.html
- linux之sed命令
- Linux命令之sed
- linux命令之sed
- linux 命令之sed
- linux 命令之sed
- linux命令之sed
- Linux命令之sed
- linux之sed命令
- Linux 命令之 sed
- Linux命令之"sed"
- linux之sed命令
- Linux命令之sed
- linux命令之sed
- Linux命令之sed
- Linux之Sed命令详解
- linux shell之sed命令
- linux 命令 之 sed awk
- Linux之Sed命令详解
- Wiggle Sort II
- CAD中如何拉伸面
- Python入门笔记(2)_ 数据类型及取整运算 round,floor,ceil
- Android Material 之NavigationView和TextInputLayout的使用
- maven using
- Linux 命令之 sed
- 轨迹中的驻留点计算
- selenium异常处理笔记
- mac下git的安装和使用
- 厨房窍门(一)
- PowerShell 编辑器快捷键
- vue.js 总结
- java反射各种属性获取
- SLAM入门知识