我正在尝试将一些cmd脚本转换为makefile但没有成功。 脚本是:
for /F "eol=* tokens=2,3*" %%i in (%VERSION_FILE_PATH%\VersionInfo.h,%VERSION_FILE_PATH%\Version.h) do (
if %%i==%MAJOR% set MAJOR_VALUE=%%j
if %%i==%MINOR% set MINOR_VALUE=%%j
if %%i==%HOTFIX% set HOTFIX_VALUE=%%j
if %%i==%BUILD% set BUILD_VALUE=%%j
)
脚本执行的操作是在每行中搜索特定字符串并获取后跟字符串。
例如:#define MAJOR 4
我正在寻找MAJOR并获得4。
我的问题是如何在makefile中执行此操作。
答案 0 :(得分:1)
如果这些行总是具有相同的结构,你可以用awk这样做:
tester:
cat test | grep MAJOR | awk '{print $$3}'
我制作了一个只包含
的小测试文件#define MAJOR 4
你可以循环遍历每一行,为你想要的标记加注,然后用awk获取第三个值。请注意,您需要双$
来转义字符串扩展make
。