awk 使用变量

发布于 2025-07-06 00:28:15 字数 2482 浏览 2 评论 0

如果第四列匹配 :加变量,就打印

Untitled

netstat -tan4p | awk '{if($4~/:'''$a'''$/){print $0}}'

awk 中使用 bash 中的变量

一 用特殊符号

"'$var'"

这种写法大家无需改变用 ' 括起 awk 程序的习惯,是老外常用的写法.如:

var="test"
awk 'BEGIN{print "'$var'"}'

Untitled

如果 var 中含空格,为了 shell 不把空格作为分格符,便应该如下使用:

var="this is a test"
awk 'BEGIN{print "'"$var"'"}'

Untitled

二 使用环境变量

export 变量,使用 ENVIRON["var"]形式,获取环境变量的值

例如:

var="this is a test"; export var;
awk 'BEGIN{print ENVIRON["var"]}'

Untitled

三 awk 的-v

可以使用 awk 的-v 选项 (如果变量个数不多,个人偏向于这种写法)

例如:

var="this is a test"
awk -v awk_var="$var" 'BEGIN {print awk_var}'

这样便把系统变量 var 传递给了 awk 变量 awk_var.

Untitled

awk 向 bash 变量传递值

由 awk 向 shell 传递变量,其思想无非是用 awk(sed/perl 等也是一样) 输出若干条 shell 命令,然后再用 shell 去执行这些命令。

eval $(awk 'BEGIN{print "var1='str1';var2='str2'"}')

Untitled

或者

eval $(awk '{printf("var1=%s; var2=%s; var3=%s;",$1,$2,$3)}' abc.txt)

Untitled

之后可以在当前 shell 中使用 var1,var2 等变量了。

echo "var1=$var1 ----- var2=$var2"

Untitled

指定行号

Untitled

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。