aegisのChange-Set属性を編集するためのシェルスクリプトを書いています。私が使用しているコマンドは次のとおりです。
aegis -Change_Attributes -Edit
これにより、変更を実行するためのviエディターが開きます。検索して置き換えたい:
s/brief_description \= \"none\"\;/brief_description \=
\ "test \" / g
スクリプトを入力せずに、スクリプトを介してこれらをオープンviインスタンスに直接渡すことはできますか?編集後、ドキュメント(:wq)を保存したい。
PSファイルはコマンド実行時に作成される一時ファイルなので、元のパスがわかりません
編集:この場合、sedを使用できます:
sed -e 's/brief_description\ \=\ \"none\"\;/brief_description\ \=\
\ "test \" \; / g '
解決策(不正なハック??)は、aegis(setenv VISUAL cat)からの出力を「cat」し、上記のコマンドで出力ストリームを変更して一時ファイルに保存し、次を使用することです。
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
働いた。通常の区切り文字(/)を%に置き換え、環境変数を二重引用符で囲みます。