如何在shell脚本里传递一个变量给awk
2017-02-08 16:00
531 查看
http://www.jquerycn.cn/a_6857
awk有时是个纠结的东西,一方面它很容易就占用了单引号和双引号,如果你要在什么脚本里面调用awk,很轻松地就要跟引号的转义进行搏斗;
另一方面,$1 $2 ... $NF $NR,它也毫不客气的占用了$族的地盘。
怎么在shell脚本里面传递一个变量给awk呢?
特别是想要把这个变量用作匹配的正则表达式的时候?
先说简单的,如果是只传递变量,有几种方法:
复制代码 代码如下:
awk '{print v1, v2}' v1=$VAR1 v2=$VAR2 input_file
# 或者,这种方法不是所有的awk分支都支持
复制代码 代码如下:
awk -v v1=$VAR1 -v v2=$VAR2 '{print v1, v2}' input_file
# 或者,这种写法是最难受的
复制代码 代码如下:
awk '{print "'"$VAR1"'", "'"$VAR2"'"}' input_file
把变量用在正则里面的方法:
复制代码 代码如下:
awk ' $0 ~ v1; {print v2}' v1=$VAR1 v2=$VAR2 input_file
在linux系统管理中,sed与awk是两个很强的东西,好好挖掘下吧
awk有时是个纠结的东西,一方面它很容易就占用了单引号和双引号,如果你要在什么脚本里面调用awk,很轻松地就要跟引号的转义进行搏斗;
另一方面,$1 $2 ... $NF $NR,它也毫不客气的占用了$族的地盘。
怎么在shell脚本里面传递一个变量给awk呢?
特别是想要把这个变量用作匹配的正则表达式的时候?
先说简单的,如果是只传递变量,有几种方法:
复制代码 代码如下:
awk '{print v1, v2}' v1=$VAR1 v2=$VAR2 input_file
# 或者,这种方法不是所有的awk分支都支持
复制代码 代码如下:
awk -v v1=$VAR1 -v v2=$VAR2 '{print v1, v2}' input_file
# 或者,这种写法是最难受的
复制代码 代码如下:
awk '{print "'"$VAR1"'", "'"$VAR2"'"}' input_file
把变量用在正则里面的方法:
复制代码 代码如下:
awk ' $0 ~ v1; {print v2}' v1=$VAR1 v2=$VAR2 input_file
在linux系统管理中,sed与awk是两个很强的东西,好好挖掘下吧
相关文章推荐
- 如何在shell脚本文件中获取awk的值, 存于变量中?
- 如何在shell脚本中将变量传给awk
- 如何将c语言的变量传递给shell脚本使用
- 如何在linux Shell脚本里面把一个数组传递到awk内部进行处理
- 如何向awk中传递shell变量参数
- 在SHELL中如何传递shell变量给awk
- 【Shell脚本】awk中如何使用shell的环境变量
- shell如何传递变量到另一个脚本文件中
- 传递shell脚本中的数组给awk
- shell变量传递给sed,awk,grep简单方法
- 如何编写一个shell脚本
- 如何编写一个shell脚本
- 如何编写一个shell脚本
- 本文结合大量实例阐述如何编写一个shell脚本
- linux下如何自动检测并重新启动一个死掉的进程,然后再把它杀死:)(shell脚本实现)
- 如何编写一个shell脚本
- 如何编写一个shell脚本
- awk中如何使用shell的环境变量
- 如何编写一个shell脚本
- linux下如何自动检测并重新启动一个死掉的进程(shell脚本实现)