我的输入中有几行我正在初始化结构。每次我在输入文件中看到类似以下行的内容时:
某事1 =(结构某事2){某事3,某事4};
我需要将其转换为:
init_something2( &something1, something3, something4);
我使用了以下功能,它可以工作。
sed -e 's/\([a-zA-Z0-9]*\)\s*=\s*(\s*struct\s\([a-zA-Z0-9]*\)\s*)\s*{\s*\([a-zA-Z0-9]*\)\s*,\s*\([a-zA-Z0-9]*\)\s*}\s*;/init_\2( \&\1, \3, \4);/g'
我的问题是如何修改它,以便它适用于许多输入。你能修改它来做任意数量的输入吗?例如:
something = ( struct something2) {something3, something4, something5, something6..};
应该成为
init_something2( &something1, something3, something4, something5, something6..);
(注意括号与大括号)非常感谢!