Chinaunix

标题: [sed]使用sed替换匹配行 [打印本页]

作者: hongfengyue    时间: 2008-09-02 14:15
标题: [sed]使用sed替换匹配行
大家好,我有一个文件类似下面的内容:
$var1 = "pwd";
$var2 = "asdfasdf";
....
其中我要替换$var1 =  这一行的值为:
$var1 = "asdf";
我使用:
sed 's#$var1 = "pwd";#$var1 = "asdf";#'
这个命令可以替换。
这里有一个问题就是,文本文件中$var1等号后面的值是不确定的,可能是
$var1 = "as";等这样的值,可是我希望不管$var1后面是什么值我都替换成$var1 = "asdf";
请问我要如何做?
谢谢大家!
作者: ly5066113    时间: 2008-09-02 14:20
sed 's#$var1 = ".*";#$var1 = "asdf";#'
作者: snake_blue    时间: 2008-09-02 14:57
awk -F '=' '{if($1~/\$var1/) $2="\"asdf\" ;" ; print $0}'
作者: 027xiatian    时间: 2008-09-02 16:11
sed 's/$var1 =.*/$var1 ="asdf"/g' youfile
作者: snake_blue    时间: 2008-09-02 16:30
原帖由 snake_blue 于 2008-9-2 14:57 发表
awk -F '=' '{if($1~/\$var1/) $2="\"asdf\" ;" ; print $0}'



对不起,原来是要用sed
作者: hongfengyue    时间: 2008-09-02 16:38
谢谢兄弟们!
刚刚还查到这样一种方式:
sed '/^$var1/c \$var1      = "asdf";'




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2