当前位置: 技术问答>linux和unix
如何用sed awk 提取宏定义的常量值?
来源: 互联网 发布时间:2016-08-14
本文导语: -------- $PRJ_VER_FILE内容-------- #define PRJ_MAJOR "1.0" -------------------------------------- 在Makefile中使用sed awk可以提取 1.0,具体指令为 : PRJ_VER=`sed -ne '/^#define.*PRJ_MAJOR/p' $PRJ_VER_FILE | awk -F""" '{print $2}'` echo $PRJ_VER 1.0 ...
-------- $PRJ_VER_FILE内容--------
#define PRJ_MAJOR "1.0"
--------------------------------------
在Makefile中使用sed awk可以提取 1.0,具体指令为 :
PRJ_VER=`sed -ne '/^#define.*PRJ_MAJOR/p' $PRJ_VER_FILE | awk -F""" '{print $2}'`
echo $PRJ_VER
1.0
请教,如果文件内容是
-------- $PRJ_VER_FILE内容--------
#define SIZEOF_STRUCT 1024
--------------------------------------
要提取1024,如何写该条指令呢?请高手赐教!
#define PRJ_MAJOR "1.0"
--------------------------------------
在Makefile中使用sed awk可以提取 1.0,具体指令为 :
PRJ_VER=`sed -ne '/^#define.*PRJ_MAJOR/p' $PRJ_VER_FILE | awk -F""" '{print $2}'`
echo $PRJ_VER
1.0
请教,如果文件内容是
-------- $PRJ_VER_FILE内容--------
#define SIZEOF_STRUCT 1024
--------------------------------------
要提取1024,如何写该条指令呢?请高手赐教!
|
awk '{if($0 ~/^#define[ ]*SIZEOF_STRUCT/) {print $3}}' $PRJ_VER_FILE
|
awk '$0 ~ /^#define/{print $0}' $PRJ_VER_FILE | grep -o -E "[0-9]{1,}"