Unexpected token error:awk when ran with sh var

Unexpected token error:awk when ran with sh var

我有一个包含数据格式的文件: 我的文件:

ABC7
{
0198cc998
};
FF48
{
01988899f
};

我需要使用参数 id_data 和 return 数据创建一个 sh 函数,如下所示:

#!/bin/sh
get_data()
{
    cmd="awk '//{getline; getline; print}' "
    echo $cmd
    export result=`$cmd`
}

get_data "ABC7" "myfile"
echo $result

当我执行脚本时出现此错误:

awk '/ABC7/{getline; getline; print}' myfile 
# when I copy this line and I execute it manually it works
awk: cmd. line:1: Unexpected token

如何 运行 awk 组成 shell 个变量?

您不需要所有这些包装 awk 脚本来传递参数。为此有一个 -v 选项。

 $ var=ABC7; awk -v key="$var" -v RS="};" '~key{print }' data

 0198cc998