sed使用正则表达式进行替换例子以及注意事项

  #例1:

  >echo "VAR(int, AAAAA) b;" |sed -e 's/bVAR(([a-z]{1,}),( )*([A-Z]+))/1/g'

  >int b;

  #上面的命令中,{}、+、()都进行了转义

  #此命令的功能是,将autosar风格的变量定义,转换成常见的变量定义,上述命令输出结果为:

  #int b;

  #例2:

  对于宏进行替换:

  #define GetData(u8, speed, (int)ZERO) u8speed[(int)ZERO]

  >echo "GetData(u8, speed, (int)ZERO);" |sed -e 's/bGetData(?(w+), *(w+), *((?w+)?)(w+))/12[34]/g'

  >u8speed[(int)ZERO]