awk 引用外部变量的六种方法

本文详细介绍了awk中引用外部变量的六种方法,并通过实例展示了如何在实际场景中应用这些方法。

awk 引用外部变量的六种方法:
1. awk -v awkvar=$extvar ... #使变量的作用域扩展至BEGIN{}
2. awk '<awk expr

ession>' "awkvar=$extvar" filename #BEGIN段不可用
3. 在awk表达式中使用'$extvar'
4. 模式引用(在正则表达式中引用外部变量) '"$extvar"'
5. 遍历外部数组(用于BEGIN段处理) awk -f 'BEGIN{for(i=1;i<ARGC;i++)print ARGV[i]}' ${extarr[@]}
6. 引用环境变量 ENVIRON["environment variable"]

eg:
cat http-access.log
[29/Mar/2010:01:46:59 +0000] "GET /blog/wp-content/themes/techified/images/bg_rss.gif HTTP/1.1" 200 652 "http://mydemoon.cn/blog/wp-content/themes/techified/style.css" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"
[29/Mar/2010:01:46:59 +0000] "GET /blog/wp-content/uploads/2009/12/IMG_00931-1024x768.jpg HTTP/1.1" 200 172422 "http://mydemoon.cn/blog/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"
[29/Mar/2010:01:46:59 +0000] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"



#!/bin/bash
dat1=`date |awk '{print $2}'`
dat2=`date -v -1m |awk '{print $2}'`
echo $dat1 $dat2
#awk  -F"//" -v datvar1=$dat1 -v datvar2=$dat2  '$2 == datvar1 || $2 == datvar2 {print $0}' /home/zhubinfeng/http-access.log
awk  -F"//"  '$2 == data1  {print $0}' data1=$dat1  /home/zhubinfeng/http-access.log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值