LinuxSir.cn,穿越时空的Linuxsir!

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

在sed中可以使用普通的变量吗?

[复制链接]
发表于 2009-3-13 19:22:53 | 显示全部楼层 |阅读模式
下面的脚本为何达不到目的?
#!/bin/sh
for i in d05?
do
    num=`echo $i|cut -c 3-4`
    sed -e 's/50/$num/' $i >>$i.$$
    rm -f $i
    mv $i.$$ $i
done
上述程序本意为把50替换为51、52……59,事实上却替换成了$num。 这个有解决办法吗?向大家求助。
发表于 2009-3-13 20:41:42 | 显示全部楼层
  1. sed -e 's/50/'"$num"'/' $i >>$i.$$
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-3-14 05:34:58 | 显示全部楼层
把单引号去掉也可以吧?看同学弄过。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-14 11:10:40 | 显示全部楼层
十分感谢Jockey,太好了。
回复 支持 反对

使用道具 举报

发表于 2009-3-15 21:38:28 | 显示全部楼层

双引号也可以不要

sed -e 's/50/'$num'/' $i >>$i.$$
回复 支持 反对

使用道具 举报

发表于 2009-3-15 21:54:27 | 显示全部楼层
风格问题,加上双引号不论如何都能算是好习惯。
回复 支持 反对

使用道具 举报

发表于 2009-3-19 10:16:12 | 显示全部楼层
似乎这样也可以
以前试过
sed -e "s/50/$num/"
回复 支持 反对

使用道具 举报

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

本版积分规则

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