shell文本过滤编程(七):awk之变量传递
来源:互联网 发布:天刀五毒捏脸数据男 编辑:程序博客网 时间:2024/04/30 07:56
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】
由于awk经常在shell脚本中使用,所以shell脚本中的有些变量要传递到awk中使用,这一节就说一下awk引用shell中的变量方法。
为避免屏幕输出太多东西,我们先将被操作文件该为一行,如下:
# catgroup_file3
vboxusers:x:984:allen
1、 文件名之前传递变量。
格式如下:awk '{print var1, var2}' var1=aaa var2=bbb filename
#!/bin/sh shell_var="test"awk '{printvar}' var=$shell_var group_file3输出结果为:
#./61_awk_var.shtest这里变量赋值要放在文件名之前,否则变量值会取不到。比如如果脚本这样写不会输出变量值。
#!/bin/sh shell_var="test"awk '{print var}'group_file3 var=$shell_var其实这种方法在BEGIN中无法使用变量,比如这样写脚本:
#!/bin/sh shell_var="test" awk 'BEGIN{ print "begin output var:" var}{ print var}END{ print "end output var:" var} 'var=$shell_var group_file3输出结果为:
#./64_awk_var.shbegin outputvar:testend outputvar:test2、 使用-v传递变量。
格式如下:awk -v var=$shell_var '{print var}' filename
#!/bin/sh shell_var="test"awk -vvar=$shell_var '{print var}' group_file3再试试该值在BEGIN中是否可以使用:
#!/bin/sh shell_var="test" awk -vvar=$shell_var 'BEGIN{ print"begin output var:" var}{ print var}END{ print "end output var:" var} ' group_file3
执行结果:
#./63_awk_var.shbegin outputvar:testtestend outputvar:test这种方法传递的变量在BEGIN可以使用。
3、 直接使用shell变量。
格式如下:awk '{print "'$shell_var'"}' filename,注意:先用双引号,再用单引号。
#!/bin/sh var="test" awk 'BEGIN{ print "begin outputvar:" "'$var'"}{ print "'$var'"}END{ print "end outputvar:" "'$var'"} ' group_file3执行结果:
# ./65_awk_var.sh begin output var:testtestend output var:test变量传递不但可以传递自定义变量,还可以传递环境变量,用法同自定义变量类似。。
2 0
- shell文本过滤编程(七):awk之变量传递
- shell文本过滤编程(七):awk之变量传递
- shell文本过滤编程(二):awk之基础
- shell文本过滤编程(三):awk之条件判断
- shell文本过滤编程(五):awk之printf
- shell文本过滤编程(八):awk之内置函数
- shell文本过滤编程(八):awk之内置函数
- shell之文本过滤(awk)
- shell之文本过滤(awk)
- shell之文本过滤(awk)
- shell文本过滤编程(四):awk内置变量及一般变量
- shell文本过滤编程(六):awk之循环判断及数组
- shell awk 变量传递
- Shell编程第十七弹——使用awk过滤文本
- [转]Awk基础入门之三:shell & awk 变量传递
- Linux Shell 脚本编程(8)—文本过滤(awk命令)
- Shell编程之文本过滤笔记
- shell编程之文本与日志过滤
- this.class.getClassLoader()怎么理解?
- 数字信号处理的学习资源
- send sendto ,recv recvfrom有什么区别
- 数据结构练习题――Hero In Maze 简单版
- HOJ 2430——Counting the algorithms(树状数组+贪心)
- shell文本过滤编程(七):awk之变量传递
- LeetCode之旅(21)
- Java读取Properties文件的六种方法
- 白话压缩感知(含Matlab代码)
- Hero In Maze
- 【JAVA】JAVA环境配置
- OpenCV基础篇之绘图及RNG随机数对象
- OpenCV基础篇之像素访问
- Socket程序从windows移植到linux下需要注意的