我正在編寫一個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