awk中使用shell变量的两种方法
2008-10-07 15:32
771 查看
假定我们要求一列数值数据的中值,数据存放在data.txt文件中,如果直接如下使用:
data_num=`cat data.txt |wc -l`
median_cnt=`expr $data_num / 2`
export median_cnt
median_value=`sort -g data.txt |awk '{if (NR == $median_cnt ) print }'`
将不能得到中值,因为awk不认识$median_cnt的SHELL变量。
有两种方法解决以上问题:
(1)使用awk的-v参数
awk的-v参数可以定义变量,这样可以将SHELL变量传进awk中:
median_value=`sort -g data.txt |awk -v median=$median_cnt {if (NR == median) print}`
这样就可以了。
(2)使用ENVIRON获取环境变量
median_value=`sort -g data.txt |awk if (NR == ENVIRON["median_cnt"]) print}`
这样也可以。
data_num=`cat data.txt |wc -l`
median_cnt=`expr $data_num / 2`
export median_cnt
median_value=`sort -g data.txt |awk '{if (NR == $median_cnt ) print }'`
将不能得到中值,因为awk不认识$median_cnt的SHELL变量。
有两种方法解决以上问题:
(1)使用awk的-v参数
awk的-v参数可以定义变量,这样可以将SHELL变量传进awk中:
median_value=`sort -g data.txt |awk -v median=$median_cnt {if (NR == median) print}`
这样就可以了。
(2)使用ENVIRON获取环境变量
median_value=`sort -g data.txt |awk if (NR == ENVIRON["median_cnt"]) print}`
这样也可以。
相关文章推荐
- awk中使用shell的环境变量方法
- shell中使用awk,awk 4000 引用shell变量的方法
- 向awk传递shell变量的两种方法
- awk 系列:如何让 awk 使用 Shell 变量
- awk使用shell变量及shell使用awk中的变量
- sed、awk调用shell变量的方法
- sed、awk调用shell变量的方法
- awk中如何使用shell的环境变量
- android使用全局变量的两种方法
- awk中使用shell中的变量
- 找了好久:awk 赋值给 shell 变量的方法
- AWK中使用shell变量
- android使用全局变量的两种方法
- sed和awk中使用shell变量【转】
- Hive开发中使用变量的两种方法
- awk调用shell命令的两种方法:system与print
- awk使用shell变量,shell获取awk中…
- python中使用shell命令的输出作为其变量的方法
- [转]android使用全局变量的两种方法
- AWK与SHELL之间的变量传递方法