2016-04-21 110 views
0
# My vars 
    index=test 
    type=book 

我想通過這些變量在awk如何bash的變量傳遞給awk腳本

awk -v index="$index" -v type="$type" 'BEGIN{print "{\"create\": {\"_index\":\"index\", \"_type\":\"type\"}}"}; {print}; END {printf "\n"}' 

所需的輸出

{"create": {"_index":"test", "_type":"book"}} 

回答

1

不嵌入字符串中的變量:

awk -v idx="$index" -v type="$type" 'BEGIN{print "{\"create\": {\"_index\":\"" idx "\", \"_type\":\"" type "\"}}"} {print} END {print ""}' 

您不能使用index作爲awk變量名,btw,因爲這是awk函數的名稱。

+1

謝謝埃德,你總是樂於助人 – Deano