我在这样的文件中有大约 100 个打印语句:
printf("%f \n\n",row1.req_pnttime);
Run Code Online (Sandbox Code Playgroud)
我想复制字符串内的变量名,使其变成这样
printf("row1.req_pnttime: %f \n\n",row1.req_pnttime);
Run Code Online (Sandbox Code Playgroud)
谁能帮我做到这一点?
PS-每个打印语句的变量名称长度都不同,因此我需要一种通用方法来执行此操作。
sed 's/\(.*("\)\(.*,\)\(.*\))/\1\3: \2\3)/' /path/to/input.txt >/path/to/output.txt
Run Code Online (Sandbox Code Playgroud)
sed 's/find/replace/'. 即找到一个表达式并替换它。\(...\)这些是捕获组。因此,任何在它们之间的匹配是一个变量“捕获”,并可以在替换部分被召回,其中\1,\2,\3,等。\(.*("\)\(.*,\)\(.*\)).
.*("。捕捉从开始到结束的任何东西(".*,。从 #1 开始,最多捕获,..*。最多捕获(但不包括))。\1\3: \2\3)。