首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

shell脚本中对sed命令的

2013-12-10 
shell脚本中对sed命令的求助直接这么说吧,当前有一个文件a,a里面有path/opt/aaa/bbb/ccc/d.txt。现在我要

shell脚本中对sed命令的求助
直接这么说吧,当前有一个文件a,a里面有path=/opt/aaa/bbb/ccc/d.txt。现在我要写一个shell脚本b.sh来将a里面的path=/opt/aaa/bbb/ccc/d.txt改成path=/opt/aaa/eee/fff/g.txt,
同时在脚本中有一变量path_pwd="/opt/aaa/xxx/yyy/zzz",而且必须要用到path_pwd变量。
如果不要用path_pwd变量,那我会写
sed -i "s#path=/opt/aaa/bbb/ccc/d.txt#path=/opt/aaa/eee/fff/g.txt#" a
但是用到path_pwd变量,我写成
sed -i "s#path=\\S*#path=$path_pwd/../../../eee/fff/g.txt#" a,可是在执行脚本之后将a文件里的path=/opt/aaa/bbb/ccc/d.txt
替换成了path=/opt/aaa/xxx/yyy/zzz/../../../eee/fff/g.txt,虽然这样也能定位到g.txt文件,但是要求里面不要有xxx/yyy/zzz/../../../。
求高人伸只援手
[解决办法]
分成2步做,第一步是你那样的,第二步再吧XXX/YYY/ZZZ去掉
[解决办法]

sed -i "s#path=\\S*#path=${path_pwd%/*/*/*}/eee/fff/g.txt#" a

热点排行