ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 662|回复: 4

shell sed解析

[复制链接]
论坛徽章:
32
优秀写手
日期:2014-07-23 06:00:13秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:28:31秀才
日期:2016-08-05 10:33:40技术图书徽章
日期:2016-08-05 10:29:11秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-09-27 15:16:21
发表于 2017-11-3 10:30 | 显示全部楼层 |阅读模式
sed -i 's:${port}:'"${port}:g"''  ${base_data_dir}/${node_name}/${node_name}.cnf
基本意思知道就是改配置文件里的某个参数,但没见过这么用sed的格式,比如s后面:什么意思,怎么这么多字符变量
这句shell 怎么理解,能否帮忙解释下 谢谢
论坛徽章:
180
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39马上有车
日期:2014-02-18 16:41:11马上有钱
日期:2014-11-24 15:17:08马上有钱
日期:2014-11-12 09:33:24马上有房
日期:2014-11-07 08:46:05马上有钱
日期:2014-10-27 09:26:57马上有对象
日期:2014-10-28 10:28:08itpub13周年纪念徽章
日期:2014-10-10 10:38:25马上有对象
日期:2015-01-14 17:33:15
发表于 2017-11-3 10:40 | 显示全部楼层
sed 高端应用超级复杂.

你这里 s 表示替换
而使用: 作为替换分割. 一般使用/ .

感觉给变量$port 加上引号...

使用道具 举报

回复
发表于 2017-11-3 11:24 | 显示全部楼层
这个不复杂吧。
${base_data_dir}/${node_name}/${node_name}.cnf 这串是文件名称,包含了环境变量而已。
sed -i 表示直接编辑后面的文件。
:是定界符,跟/一样都可以没差别。
's:${port}:'"${port}:g"''  这里前面的s表示替换,g表示该行出现的全部替换,中间的就是替换内容。

但是这个替换有点问题。sed是打开文件一行一行读进来,然后进行识别替换的,这里使用的变量${port},应该不会传入值 ,而是空。


sed -i 's:${port}:'"${port}:g"''  

使用道具 举报

回复
发表于 2017-11-3 11:39 | 显示全部楼层
瑟瑟发抖一声吼 发表于 2017-11-3 11:24
这个不复杂吧。
${base_data_dir}/${node_name}/${node_name}.cnf 这串是文件名称,包含了环境变量而已。
...

sed -i 's:${port}:'"${port}:g"''  

仔细看了下,其实目的就是要把文本行中包含${port}这个符号的值,用现有变量${port}传入。
如行是这样:12345${port}8dgdfg
然后你export port=hello
执行sed -i 's:${port}:'"${port}:g"''等价于sed -i 's:${port}:hello:g'
执行结果就是:12345hello8dgdfg
sed中变量需要在‘“”’(一个单引号,内包含一个双引号)内才可用

使用道具 举报

回复
论坛徽章:
32
优秀写手
日期:2014-07-23 06:00:13秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:28:31秀才
日期:2016-08-05 10:33:40技术图书徽章
日期:2016-08-05 10:29:11秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-09-27 15:16:21
 楼主| 发表于 2017-11-6 09:17 | 显示全部楼层
瑟瑟发抖一声吼 发表于 2017-11-3 11:39
sed -i 's:${port}:'"${port}:g"''  

仔细看了下,其实目的就是要把文本行中包含${port}这个符号的值 ...

好人,谢谢您的耐心解答

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表