2017-09-25 47 views
6

Cố gắng chuyển biến "CLIENT_ID" bên ngoài vào dòng này của awk, nhưng nó không hoạt động như mong đợi. Đây là những gì tôi đã cố gắng:Sử dụng các biến bash bên trong awk

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

trong A.csv

201712 
201711 
201710 

đầu ra mong muốn trong B.csv:

xxx_1_201712.sh 
xxx_1_201711.sh 
xxx_1_201710.sh 

gì tôi đang nhận được:

xxx_${CLIENT_ID}_201712.sh 
xxx_${CLIENT_ID}_201711.sh 
xxx_${CLIENT_ID}_201710.sh 

Trả lời

8

${CLIENT_ID} là cú pháp bash. Thay vào đó, bạn nên sử dụng cú pháp awk mà bạn đã sử dụng cho $0:

awk -v CLIENT_ID="${CLIENT_ID}" 'NF{print "xxx_" CLIENT_ID "_" $0 ".sh"}' A.csv > B.csv 
Các vấn đề liên quan