awk怎样自定义变量以及常用bash传递的变量
来源:互联网 发布:linux难学吗 编辑:程序博客网 时间:2024/06/07 06:27
Linux服务器管理、bash脚本编写过程中经常用到awk进行数据分析,awk变量使用过程中又经常因为出现歧义或者定义不规范,导致无法得到预期的结果。本文用最简洁的例子说明awk变量如何正确的定义和使用。
方法/步骤
在awk中自定义变量
通过-v参数便可以自定义变量传递给awk使用,如果是BEGIN中调用的话,变量的定义必须紧邻awk命令,如下所示:
[root@none ~]# awk -v var='bianliang' 'BEGIN{print var}'
bianliang
如果用:[root@none ~]# awk 'BEGIN{print var}' -v var='bianliang'
显示的结果将是空,因为变量定义在了BEGIN使用以后。
为了养成一个好的脚本编写习惯,建议所有的变量都使用第一种习惯,紧邻awk命令加-v参数进行变量定义
在awk中使用bash传递的变量
类似自定义变量,在脚本中可以轻易的用-v参数将bash的变量传递给awk,如下所示:
[root@none ~]# name=sni7
[root@none ~]# awk -v var=${name} 'BEGIN{print var}'
sni7
awk中定义多个变量
在定义每个变量的时候,都必须重新加入-v参数,如:
# awk -v year=2013 -v month=04 '$2 ~ year"/"month"/[0123]" {print $2,$3,$NF}' ceb2013.lst
就是说定义了year、month两个变量。
以上awk命令的含义是:匹配ceb2013.lst中,第二列为“2013/04/**”(即日期是2013年4月份某天)这样格式的内容,将第二列、第三列和最后一列打印输出。注意,$2、$3、$NF都是系统变量,系统变量是需要前缀的,但是自定义变量不需要任何前缀。
同时为了区分自定义变量和普通文本,在输出文本的时候需要使用双引号将文本引用起来。
- awk怎样自定义变量以及常用bash传递的变量
- bash的常用变量
- awk常用函数以及变量参考
- shell awk 变量传递
- Bash比较常用的变量
- awk/sed与shell变量的传递
- awk常用的内建变量
- awk中使用bash中定义的变量
- shell & awk 变量传递+awk综合概要
- BASH脚本中常用的变量
- Shell基础-Bash变量-用户自定义变量
- bash变量-用户自定义变量和环境变量/
- shell基础-bash变量-用户自定义变量
- shell基础-bash变量-用户自定义变量
- awk与shell之间的变量互相传递方法
- awk与shell之间的变量传递方法
- awk的系统变量
- bash的变量
- POJ 1915 经典马步 双向bfs
- ios json 解析中文乱码问题
- Snap2HTML v1.51
- 一些有趣的网站
- poj3229 哈密顿回路
- awk怎样自定义变量以及常用bash传递的变量
- Unity3d 百度网盘资料分享
- Android主要包说明
- python入门
- [c#基础知识]浅谈Hashtable与Dictionary的异同
- VC实现程序重启的做法
- 在这里安个小窝
- 高效研发团队建设六步曲
- Oracle数据库游标的类型及使用实例全解