sed命令使用
今天对sed小命令的几个选项总结一下,以备忘。
比如有这样一个源文件:
//school
tsinghua BJ
tongji SH
shanda SD
nanda JS
xidian XA
需求1:希望把BJ替换成Beijing, SH=>Shanghai, SD=>Shandong, JS=>Jiangshu, XA=>Xi’an
于是想到了sed命令可以完成替换功能。
sed ’s/BJ/Beijing/; s/SH/Shanghai/; s/SD/Shandong/; s/JS/Jiangshu/;s/XA/Xian/’ school
//output
tsinghua Beijing
tongji Shanghai
shanda Shandong
nanda Jiangshu
xidian Xian
效果还不错,记得sed还有一个-e选项,试一下这个吧:
sed -e ’s/BJ/Beijing/’ -e ’s/SH/Shanghai/’ -e ’s/SD/Shandong/’ -e ’s/JS/Jiangshu/’ -e’ s/XA/Xian/’ school
效果依旧:)
方法三:我们输入的时候分成多行
sed ‘
s/BJ/Beijing/
s/SH/Shanghai/
s/SD/Shandong/
s/JS/Jiangshu/
s/XA/Xian/
‘ school
效果同样不错。
方法四:存一个sed文件
//test.sed
s/BJ/Beijing/
s/SH/Shanghai/
s/SD/Shandong/
s/JS/Jiangshu/
s/XA/Xian/
sed -f test.sed school
效果还是挺令人满意的。
需求二:我们只把BJ替换成Beijing其它的不替换,也不显示。
这时候-n便派上用场了。
sed -n ’s/BJ/Beijing/p’ school
输出如下:
tsinghua Beijing
怎么样,不错吧。
现在想想,XA似乎没有替换成Xi’an,没有单引号,怎么办?
对了,sed输入实际可以使用双引号的,试一下吧
sed -e ’s/BJ/Beijing/’ -e ’s/SH/Shanghai/’ -e ’s/SD/Shandong/’ -e ’s/JS/Jiangshu/’ -e “s/XA/Xi\’an/” school
结果正确了~~~~~~
总结一下:
1 sed的-f为指定执行文件
2 sed的-n选项,过滤不匹配的输出
3 sed的-e指定后面跟的是命令
4 sed的输入可以是”",这样可以过滤一些特殊字符
建议继续学习:
- vim几个小技巧(批量替换,列编辑) (阅读:36795)
- ps - 按进程消耗内存多少排序 (阅读:12115)
- 100个常用的linux命令 (阅读:11063)
- find命令的一点注意事项 (阅读:11071)
- 利用find和sed批量替换文件内容 (阅读:10912)
- 每个程序员都应该知道的8个Linux命令 (阅读:10250)
- 最受欢迎的10个 Linux 单行命令 (阅读:9625)
- Linux date 命令获取某日期的前一天 (阅读:9278)
- ps 命令常见用法 (阅读:8883)
- Linux常用系统信息查看命令 (阅读:8100)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:zja601 来源: Zhang Jiuan' Notes
- 标签: sed 命令
- 发布时间:2010-01-25 13:25:01
-
[927] WordPress插件开发 -- 在插件使用 -
[133] 解决 nginx 反向代理网页首尾出现神秘字 -
[52] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] 整理了一份招PHP高级工程师的面试题 -
[50] 全站换域名时利用nginx和javascri -
[50] 海量小文件存储 -
[50] 用 Jquery 模拟 select -
[49] CloudSMS:免费匿名的云短信 -
[48] Innodb分表太多或者表分区太多,会导致内 -
[47] jQuery性能优化指南
