2017-09-25 24 views
6

के अंदर बैश चर का उपयोग करना बाहरी "CLIENT_ID" चर को इस लाइन में पारित करने का प्रयास कर रहा है, लेकिन यह अपेक्षा के अनुसार काम नहीं करता है।अजीब

A.csv में
CLIENT_ID=1 
awk -v CLIENT_ID="${CLIENT_ID}" 'NF{print "xxx_${CLIENT_ID}_" $0 ".sh"}' A.csv > B.csv 

201712 
201711 
201710 
B.csv में

वांछित उत्पादन:

xxx_1_201712.sh 
xxx_1_201711.sh 
xxx_1_201710.sh 

क्या मैं वर्तमान में हो रही है:

यह मैं क्या कोशिश की है है
xxx_${CLIENT_ID}_201712.sh 
xxx_${CLIENT_ID}_201711.sh 
xxx_${CLIENT_ID}_201710.sh 

उत्तर

8

${CLIENT_ID} बैश वाक्यविन्यास है। आपको awk सिंटैक्स का उपयोग करना चाहिए जिसका आप पहले से ही $0:

awk -v CLIENT_ID="${CLIENT_ID}" 'NF{print "xxx_" CLIENT_ID "_" $0 ".sh"}' A.csv > B.csv 
के लिए उपयोग कर रहे हैं