我正在编写一个shell脚本来编辑 aegis的Change-Set属性。该 命令我使用的是:开辟了一个vi编辑器在shell脚本中使用变量sed
aegis -Change_Attributes -Edit
进行 了变化。我想做一个搜索 和替换:
s/brief_description \= \"none\"\;/brief_description \=
\“测试\”/g的
我可以通过这些直接通过脚本打开 VI实例,而不 打字它的任何?我想在编辑它之后保存 文档(:wq)。
P.S.该文件是在执行命令时使 我不知道原来的路径
编辑创建的临时文件 :我用过可以的sed在这种情况下:
sed -e 's/brief_description\ \=\ \"none\"\;/brief_description\ \=\
\“测试\“\;/G”
溶液(不雅劈??)将 是 ”猫“ 由主持 输出(SETENV VISU AL猫),修改了 放流与上面的命令和 保存到临时文件,并使用:
aegis -change_attributes -file <temp file>
EDIT2:我几乎得到它的工作。但是,有一个与我使用sed
我有我的脚本中的以下行的方式有问题:
sed -i 's/brief_description\ \=\ \"none\"\;/brief_description\ \=\ \"${DESC}\"\;/g' temp_next.txt
但是$ DESC变量不评价它的价值和出把给定为:
brief_description =“$ {DESC}”;
如何将DESC传递给sed以评估其实际值?
EDIT3:
使用
sed -i 's%brief_description\ \=\ \"none\"\;%brief_description\ \=\ \"'"$DESC"'\"\;%g' temp_next.txt
工作。我用%替换正常的分隔符(/),并将环境变量放在双引号中。
如果我用猫与SED修改输出,就会将更改保存到文件? – Gayan 2009-04-21 11:01:26
不,您必须将sed的输出重定向到某处,在这种情况下,请将其重定向到临时文件。然后,编辑完成后,删除原始文件并重命名临时文件。 – 2009-04-21 11:03:21