awk 使用变量
如果第四列匹配 :加变量,就打印
netstat -tan4p | awk '{if($4~/:'''$a'''$/){print $0}}'
awk 中使用 bash 中的变量
一 用特殊符号
"'$var'"
这种写法大家无需改变用 '
括起 awk 程序的习惯,是老外常用的写法.如:
var="test"
awk 'BEGIN{print "'$var'"}'
如果 var 中含空格,为了 shell 不把空格作为分格符,便应该如下使用:
var="this is a test"
awk 'BEGIN{print "'"$var"'"}'
二 使用环境变量
export 变量,使用 ENVIRON["var"]形式,获取环境变量的值
例如:
var="this is a test"; export var;
awk 'BEGIN{print ENVIRON["var"]}'
三 awk 的-v
可以使用 awk 的-v 选项 (如果变量个数不多,个人偏向于这种写法)
例如:
var="this is a test"
awk -v awk_var="$var" 'BEGIN {print awk_var}'
这样便把系统变量 var 传递给了 awk 变量 awk_var.
awk 向 bash 变量传递值
由 awk 向 shell 传递变量,其思想无非是用 awk(sed/perl 等也是一样) 输出若干条 shell 命令,然后再用 shell 去执行这些命令。
eval $(awk 'BEGIN{print "var1='str1';var2='str2'"}')
或者
eval $(awk '{printf("var1=%s; var2=%s; var3=%s;",$1,$2,$3)}' abc.txt)
之后可以在当前 shell 中使用 var1,var2 等变量了。
echo "var1=$var1 ----- var2=$var2"
指定行号
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论