2017-09-25 78 views
6

嘗試將外部「CLIENT_ID」變量傳遞到awk的這一行,但它不能按預期工作。這是我已經試過:在awk中使用bash變量

在A.csv

201712 
201711 
201710 
在B.csv

所需的輸出

CLIENT_ID=1 
awk -v CLIENT_ID="${CLIENT_ID}" 'NF{print "xxx_${CLIENT_ID}_" $0 ".sh"}' A.csv > 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}是bash語法。您應該使用$0已使用的awk語法:

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