一:"'$var'"
这种写法大家无需改变用'括起awk程序的习惯,是老外常用的写法.如:
var="test"
awk 'BEGIN{print "'$var'"}'
这种写法其实就是把一对单引号分成了两段单引号,中间的shell变量直接按照shell变量的引用方式即可,但是如果var中含空格,为了shell不把空格作为分格符,便应该如下使用:
var="thisis a test"
awk 'BEGIN{print "'"$var"'"}' (也就是在shell变量的两边加上一对双引号即可)
二:export变量,使用ENVIRON["var"]形式, (ENVIRON为awk中的内置环境变量数组)
如:
var="thisis a test";export $var
awk 'BEGIN{print ENVIRON["var"]}'
三:当然也可以使用-v选项
如:
var="thisis a test"
awk –v nvar="$var" 'BEGIN{print nvar}'
这样便把系统变量定义成了awk变量.
如果在awk是这种格式的话 awk 'script' filename 也可以这样引用shell变量
awk 'script' awkvar="shellvar" filename
awk 'END{print awkvar}' awkvar="$shellvar" filename
本文详细介绍了如何在Awk脚本中引用Shell变量的三种常见方法:使用特殊字符串格式化、利用ENVIRON数组和通过-v选项传递变量。每种方法都有其适用场景和注意事项,对于熟悉Shell脚本并希望在Awk环境中使用这些变量的开发者来说非常实用。

374

被折叠的 条评论
为什么被折叠?



