我正在编写一个 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
有任何想法吗?
像这样的东西:
sed 's/\([A-Za-z_][A-Za-z0-9_]*\) *\([A-Za-z_][A-Za-z0-9_]*\);/\1 \2 = (\1 *)someOtherVar->Get("\2");/' input
最终解决方案(解决了@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