2016-02-19 30 views
0

我有一個包含數據格式的文件: MYFILE:意外標記錯誤:AWK時與SH VAR跑

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

我需要與paramater 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 

浩w運行在shell變量中組成的awk?

+1

目前尚不清楚你想要做什麼。你正在展示一個非常不太有效的代碼,它不清楚正在做什麼。 – fedorqui

回答

1

你不需要awk腳本的所有這些包裝來傳遞參數。這有一個-v選項。

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

0198cc998