我们先说下常用的调用方式 最后在总结 废话少说 实操见真理
1.调用内部变量
awk -v user=root -F:'$1==user' /etc/password
2.调用外部变量
var=bash
echo "unix script"|awk 'gsub(/unix/,"'"$var"'")'
单引号被两对双引号包裹
i=10
df -h|awk '{if(int($5)>'''$i'''){print $6":"$5}}'
上面这种是三个单引号
你会发现上面这两种情况 都是调用外部变量 但是方法不同 而且不能通用 可能你会去找awk bash中 单双引号的含义 甚至还会发现调用外部变量 和还有其他方法 理论的难理解
直接记操作又发现很多方法又不能通用 还要记特殊例子 烦!!!!
总结 :我的处理----------
把外部变量变为内部变量 就好处理了 awk -v bianlaing1=bianliang2 ' ' file
比如:上面例子该成
1. echo "unix script"|awk -v var=bash 'gsub(/unix/,var)'
2. df -h|awk -v i=10 '{if(int($5)>i)print $6":"$5}'
这样处理是不是只要记着 引用变量 甭管啥变量 哪的变量 转换成内部变量即可一个参数-v 即可
需要提醒的是 awk 引用内部变量 是不需要加$