0

CPPソースファイルを生成するためのbashスクリプトを書いています。次のような変数とその名前のリストがあります。

   TH1F z_E;
   TH1F z_eta;

私はこのようなものを提出したい:

   TH1F * z_E =(TH1F *)f-> Get( "z_E");
   TH2F * z_eta =(TH2F *)f-> Get( "z_eta");

でやろうとしていましたsedが、一致した文字列を使用して結果を書き込む方法が見つかりませんでした。

PS:私のsedバージョンは4.1.5です

何か案は?

4

2 に答える 2

2

このようなもの:

sed 's/\([A-Za-z_][A-Za-z0-9_]*\) *\([A-Za-z_][A-Za-z0-9_]*\);/\1 \2 = (\1 *)someOtherVar->Get("\2");/' input
于 2013-03-26T02:30:32.963 に答える
0

最終的な解決策(@perrealの回答に関する小さな問題を解決)は次のとおりです。

sed 's/\([A-Za-z_][A-Za-z0-9_]*\)[ \t]*\([A-Za-z_][A-Za-z0-9_]*\);/\1 \2 = (\1 *)f->Get("\2");/' input
于 2013-10-07T16:41:00.330 に答える