无法让 awk 在 make 内正常工作

无法让 awk 在 make 内正常工作

我想解析一个文件并将每一行用#ifndef和括起来#endif

例如,从以下内容开始:

#define X 1
#define Y 2
#define Z 3

我想生成:

#ifndef X
#define X 1
#endif
#ifndef Y
#define Y 2
#endif
#ifndef Z
#define Z 3
#end if

awk脚本在控制台中工作,但在内部不起作用make

awk '{printf "#ifndef %s\n%s %s %s\n#endif\n", $2, $1, $2, $3}' globals.tmp > globals.h

当在 内部运行时make,输出如下:

awk: cmd. line:1: {printf "#ifndef %s\n%s %s %s\n#endif\n", , , , }
awk: cmd. line:1:                                           ^ syntax error
awk: cmd. line:1: {printf "#ifndef %s\n%s %s %s\n#endif\n", , , , }
awk: cmd. line:1:                                             ^ syntax error
awk: cmd. line:1: {printf "#ifndef %s\n%s %s %s\n#endif\n", , , , }
awk: cmd. line:1:                                               ^ syntax error
awk: cmd. line:1: {printf "#ifndef %s\n%s %s %s\n#endif\n", , , , }
awk: cmd. line:1:                                                 ^ syntax error
awk: cmd. line:1: {printf "#ifndef %s\n%s %s %s\n#endif\n", , , , }
awk: cmd. line:1:                                                  ^ unexpected newline or end of string

所以它显然没有拉动田地。我尝试使用$1$2$3:添加单反斜杠、双反斜杠和三反斜杠,更改引号等,但没有任何效果。我知道awk并且make可能很古怪,想知道是否有一些我没有得到的“陷阱”?

相关内容