2017-09-25 77 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