一、在awk 体中定义变量的值:
1.1 使用-v 参数指定变量
[root@node1 sh]# awk -v aa=test2 -v bb=test3 ‘{print aa,bb}’ a.txt
test2 test3
test2 test3
test2 test3
test2 test3
test2 test3
test2 test3
test2 test3
test2 test3
2.2 直接赋值:
[root@node1 sh]# awk ‘{print aa,bb}’ aa=test4,bb=test5 a.txt
test4,bb=test5
test4,bb=test5
test4,bb=test5
test4,bb=test5
test4,bb=test5
test4,bb=test5
test4,bb=test5
test4,bb=test5
二、在awk体外定义了变量如何在awk中引用?
定义变量aa=test
[root@node1 ~]# aa=test
使用 “、’ 、$ 符号引用变量aa:
[root@node1 sh]# awk ‘{print "’$aa’”}’ a.txt
test
test
test
test
test
test
test
test
或者:使用"、’、" 、 $ 符号引用变量aa:
[root@node1 sh]# awk ‘{print "’"$aa"’"}’ a.txt
test
test
test
test
test
test
test
test
[root@node1 sh]#
不管是"’$aa 还是 “’” $aa ,双引号、单引号的组合都是为了按从左到右的顺序成对匹配
awk命令用单引号引起来,就是防止shell对其中内容进行解释