LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 785|回复: 2

请教一个sed的问题,关于shell变量的替换

[复制链接]
发表于 2008-3-5 23:30:51 | 显示全部楼层 |阅读模式
我的意图是:
AA="aa bb cc ",将AA替换成为"aa.tgz bb.tgz cc.tgz",即将" "(空格)替换成".tgz "(tgz后面还有个空格)
第一个问题:
我知道环境变量可以替换${AA/ /.tgz },不过这样只能替换一个,好像记得可以加入一个什么符号能全部替换来着,该怎么加,加在什么地方?

第二个问题:
我采用sed来替换,写法如下:
echo $AA | sed 's/ /.tgz /g'
可是我发现最后一个cc不能替换成.tgz,而如果A="aa+bb+cc+",将+替换成".tgz ",就可以的。
我的问题是这是sed的限制吗?还是我用的不对?

请大家帮忙,谢谢。
 楼主| 发表于 2008-3-6 00:52:45 | 显示全部楼层
第一个问题已经从man中找到答案了
仍然需要帮忙的是第二个问题
回复 支持 反对

使用道具 举报

发表于 2008-3-6 09:03:35 | 显示全部楼层
第二个问题, 根据楼主的目的不如换一种方法实现
  1. echo "aa bb cc" | sed 's/\>/.tgz/g'
复制代码

直接根据语义在每个单词的结尾加上 .tgz
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表