awk中使用shell变量的方法有三种:
1、使用双引号quoting方法,就是在搜索的正则表达式的pattern中使用shell变量,这里可以直接使用双引号取得shell中的变量
printf "Enter search pattern: "
read pattern
awk "/$pattern/" '{ nmatches++ }
END { print nmatches, "found" }' /path/to/data
2、使用系统的环境变量:在awk中可以用ENVIRON数组引用系统的环境变量,例子如下
#!/bin/bash
id=1000
export id
awk '\
BEGIN {
print ENVIRON["id"];
}' test.txt
运行之后输出:1000
3、使用awk assign方法,-v参数
在awk的手册中,-v参数的描述如下:
-v var=val
--assign var=val
Assign the value val to the variable var, before execution of
the program begins.Such variable values are avail-able to
the BEGIN block of an AWK program.
-v参数后面可以给某一个变量赋值,这个就是连接shell和awk中程序的桥梁,这个应该是传递shell中的变量到awk中的正统方法,推荐使用这个方法。
使用例子如下:
#!/bin/bash
id=1000
awk -v awkId="$id" '\
BEGIN {
print awkId;
}' test.txt
输出:1000
参考文献:
http://yanwang.blog.51cto.com/1123232/383259
http://www.gnu.org/software/gawk/manual/html_node/Using-Shell-Variables.html
除注明转载的文章外,都是本人原创,转载时请加上原文链接并注明: 转载自品味生活
本文链接地址: awk使用shell中变量的方法
分享到:
相关推荐
awk '/101/' file 显示文件file中包含101的匹配行。 awk '/101/,/105/' file awk '$1 == 5' file awk '$1 == "CT"' file 注意必须带双引号 awk '$1 * $2 >100 ' file awk '$2 >5 && $2<=15' file
- **获取命令行参数**:使用特殊的变量`ARGV`可以获取传递给AWK程序的命令行参数。 - **示例**:可以在程序中使用`ARGV[1]`来访问第一个命令行参数。 #### 十、编写交互式程序 - **读取用户输入**:可以使用`...
`set`在`awk`中是一个关键的概念,它涉及到变量、数组以及模式匹配等方面。本手册将深入探讨`awk set`的使用方法,帮助你更好地理解和运用这一工具。 一、`awk`基础 `awk`的名字来源于它的创始人——Alfred V. Aho...
管理awk文件的结构,包括设置变量、使用函数等。 6. 设置 awk 变量 设置 awk 变量来处理数据: awk -v var=10 '{ print $1, var }' processes 7. 多字段分隔符 使用 awk 多字段分隔符来处理数据: awk -F, '{ ...
在Linux系统中,awk是一个强大的文本分析工具,它允许...这些示例展示了awk的强大功能,通过灵活地使用内置变量,可以实现复杂的文本处理任务。理解并熟练掌握这些变量,对于提高Linux系统中的数据处理效率至关重要。
### Awk 使用手册详解 #### 一、Awk 简介 Awk 是一种功能强大的文本处理工具,广泛应用于 Unix 和类 Unix 系统中。它的名字来源于三位设计者的名字首字母:Aho (Peter)、Weinberger (Brian) 和 Kernighan (Doug)。...
awk的变量分为两种:数值变量和字符串变量,它们在使用时无需预先声明。运算与判断部分涵盖了算术运算、比较运算和逻辑运算,使得awk能够处理复杂的逻辑表达式。 流程控制语句是awk编程的关键,其中if...else语句...
`awk`提供了许多内置变量,如`NF`表示当前行的字段数,`NR`表示已读取的记录数(行数),`FNR`则是在当前文件中的记录数。 **4. 模式匹配** `awk`的模式可以是正则表达式,例如`/pattern/`,也可以是逻辑表达式,如...
**awk** 可以实现样式匹配、流程控制、数学运算、变量和函数的使用等,几乎涵盖了编程语言的所有基本要素。因此,**awk** 也被定义为一种“样式扫描和处理语言”。 - **样式匹配**: **awk** 能够识别文本中的特定...
`awk` 是一个样式扫描和处理语言,它提供了丰富的功能,包括样式匹配、数据处理、流控制、数学运算、内置变量和函数等,使其能够完成类似于数据库的文本处理工作,但不需要专门的文件格式。 `awk` 的主要特点在于它...
**awk的变量**:AWK中的变量默认为全局变量,无需声明即可使用。可以使用`delete`操作符删除数组元素,`BEGIN`和`END`块则分别在处理数据前和处理完所有数据后执行。 **运算与判断**:AWK支持算术运算、关系运算、...
这三条命令都可以用于将 a.txt 中第二行第二列的内容替换为 22,awk 命令使用 NR 变量来匹配第二行,然后将第二列的值赋值为 22。sed 命令使用行号和字段分隔符来实现文本的替换操作。 五、总结 Sed 和 Awk 是两种...
### awk使用手册详解 #### 一、awk简介 在UNIX世界里,存在许多强大的文本处理工具,其中awk作为一款出色的模式扫描与处理语言,却往往被人们所忽视。它的名字来源于三位创造者的名字首字母——Aho、Weinberg以及...
Linux运维-运维系统服务04-Shell脚本d7-Shell三剑客(下)-08awk变量定义和打印.mp4
awk 手册中文版.pdf awk 手册中文版由 bones7456 整理,...awk 手册中文版提供了 awk 的基础知识和实践指南,旨在帮助读者快速掌握 awk 的使用和特点,並且提供了一些范例和解题模式,帮助读者更好地理解和应用 awk。
### Awk命令使用详解 #### 一、Awk简介 Awk是一种强大的文本处理语言,专为高级文本处理和数据分析而设计。它被广泛应用于快速编写脚本来处理文本文件,如日志文件、配置文件等。Awk的核心功能在于能够方便地对文本...
### awk使用基本理论 #### 一、awk简介与版本 - **awk** 是 Linux Shell 三剑客之一,主要用于文本处理。它是一种强大的文本分析工具,可以在数据流中搜索匹配的模式并执行相应的操作。 - **awk** 有三个主要版本...
`awk`有许多内置变量,如`NR`(行号)、`NF`(字段数量)、`$0`(当前行)、`$1`、`$2`...(当前行的各字段)。例如: ```bash awk '{ print NR, NF, $0 }' file.txt ``` 输出每行的行号、字段数量及完整行内容。 ### 4....