Chinaunix首页 | 论坛 | 博客
  • 博客访问: 483913
  • 博文数量: 71
  • 博客积分: 1332
  • 博客等级: 少尉
  • 技术积分: 772
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-10 16:25
个人简介

文章分类

全部博文(71)

文章存档

2013年(19)

2012年(9)

2011年(43)

分类: LINUX

2012-08-21 14:49:26

通常我们使用sed的时候使用单引号


点击(此处)折叠或打开

  1. $echo "aaaa" | sed -n 's/aaaa/bbbb/p'
  2. bbbb


但是如果我们想使用变量来替换呢?


点击(此处)折叠或打开

  1. b=bbbb
  2. $echo "aaaa" | sed -n 's/aaaa/$b/p'
  3. $b


没有被替换,输出是$b。  单引号中$b  shell 没有解释并替换
那我们可以将单引号换成双引号


点击(此处)折叠或打开

  1. echo "aaaa" | sed -n "s/aaaa/$b/p"
  2. bbbb


如果
b=bbbb/bbbb
在进行替换呢?


点击(此处)折叠或打开

  1. echo "aaaa" | sed -n "s/aaaa/$b/p"
  2. sed: -e expression #1, char 13: unknown option to `s


?如何解决呢;$b中的/被用作了s命令匹配
将sed中/ 替换成# 就行了


点击(此处)折叠或打开

  1. echo "aaaa" | sed -n "s#aaaa#$b#p"
  2. bbbb/bbbb



阅读(13003) | 评论(1) | 转发(2) |
给主人留下些什么吧!~~

watcher_nan2014-06-17 18:15:31



赞, 最后的那个 替换分割符的 方法很有用, 帖子发表时间很久, 但挺有用, 赞一个。