我有一个包含数据格式的文件: MYFILE:
ABC7
{
0198cc998
};
FF48
{
01988899f
};
我需要使用参数id_data创建一个sh函数并返回如下数据:
#!/bin/sh
get_data()
{
cmd="awk '/$1/{getline; getline; print}' $2"
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
如何在shell变量中运行awk?
答案 0 :(得分:1)
你不需要awk脚本的所有这些包装来传递参数。这有一个-v
选项。
$ var=ABC7; awk -v key="$var" -v RS="};" '$1~key{print $3}' data
0198cc998