LinuxSir.cn,穿越时空的Linuxsir!

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

如何在sed的command中使用变量?

[复制链接]
发表于 2003-7-15 11:24:49 | 显示全部楼层 |阅读模式
sed '/aa/s/abc/arg/' filename
这个命令是用来替换文本的,但是我想问,如果在这条语句的前面有一个变量,我想用这个变量的值来替换文件中的满足条件的字符串,用sed如何来做?因为在单引号中的变量不能替换。

如果用sed不行,是否还有取代的办法?
发表于 2003-7-15 11:33:16 | 显示全部楼层
sed s/string/${var}/g urfile
 楼主| 发表于 2003-7-15 12:20:46 | 显示全部楼层
谢谢!太好了!
发表于 2003-7-15 14:22:18 | 显示全部楼层
直接这样也行:
fancyworld lucida $ export a=aaaaaaaaaa
fancyworld lucida $ echo dDd | sed 's/d/'$a'/g'
aaaaaaaaaaDaaaaaaaaaa

不过版主的写法比较规范了
类似的还有尽量用$(cmd)而非`cmd` :-)
发表于 2003-7-15 15:18:52 | 显示全部楼层
除了用sed,也可以用tr
$var=newstr
$cat urfile|tr oldstr $var
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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