2016-04-28 27 views
0

私はjspページとその中に機能を持っています。awkを使ってドキュメントに余分な行を追加する

私はこのようなAWKを使用しようとしている

function foo() { 
if(confirm("new text"+bar) { 
    //do something 
} 

以下のようなシェルスクリプトでのJSPページへのcondtionがそれを作るために場合exsitingを編集したり、新しいを追加したい

function foo() { 
if(confirm("bar") { 
    // do something 
} 

新しい場合は条件が1つも存在しない場合。

awk '/foo/{print;print "if(confirm(Hey) {";next}1' myjsp.jsp 
awk '/foo2/{print "}";}1' myjsp.jsp //foo2 is fucntion after foo. using this add closing } 

問題は、私は私が推測重複行の印刷を見ている。なぜなら、現在の行の後にオプション1プリントアウトすべて。どうやってこれをやめるの?

+0

あなた '場合が...'ステートメントがええエラー...不対 ')' – Kent

+0

を持っています。それはちょうど私が問題でそれを見逃している。それはコードでは問題ありません。 – Shashank

答えて

0

は、この単純な方法

sed -r '/foo()/{n;/if\(confirm/s/([^"]+)"(.*)".*/\1"new text"+\2)\{/}' fileName 

アウトプットしてみてください。

function foo() { 
if(confirm("new text"+bar){ 
    // do something 
} 
+0

自分自身に条件が存在しない場合は追加する必要もあります。それで、私はawkを使っていました。問題はまずawkが次のすべての行を追加して出力することです。 2番目のawkの印刷終了}。私は回避策は、最初のawkを使用して、それの出力に2番目のawkを使用することだと思う。しかし、そこにエレガントな解決策はありますか? btw私はあなたの解決策を理解しようとawk/sedの新人です。 – Shashank

関連する問題