0

我正在编写一个 bash 脚本来生成 CPP 源文件。我有一个变量列表及其名称,如下所示:

   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 回答