在awk中引用外部变量会无法生效,但使用双引号时候,内置变量会不识别;解决方法是使用三引号;
localhost ~]$ more awkfile
this is one
this is two
this is three
this is four
this is five
this is six
this is seven
$ awk ‘{print $3}‘ awkfile $ awk "{print $3}" awkfile
one this is one
two this is two
three this is three
four this is four
five this is five
six this is six
seven this is seven
[@localhost ~]$ more awk.sh
#!/bin/bash
echo "-----1111111111------------"
awk ‘NR==2 {print $3}‘ awkfile
echo "-----222222222-------------"
awk "NR==2 {print $3}" awkfile
echo "-----333333333-------------"
i=2
awk ‘NR==$i {print $3}‘ awkfile
echo "-----444444444-------------"
awk "NR==$i {print $3}" awkfile
echo "-----555555555-------------"
awk "NR==$i "‘{print $3}‘"" awkfile
[@localhost ~]$
[@localhost ~]$ sh awk.sh
-----1111111111------------
two
-----222222222-------------
this is two
-----333333333-------------
-----444444444-------------
this is two
-----555555555-------------
two
[@localhost ~]$
以上是个人浅薄经验,以此进行记录。