一、基础
1.程序格式
gawk options program file
-F:分隔符
-f: 文件
-v:变量
-mf: 最大字段数
-mr:最大行数
2.将命令放于花括号中
gawk '{...}'
3.字段变量
$0: 整行文本
$1...$n: 第n个字段
gawk -F: '{print $1}' /etc/passwd
echo "my name is sosop" | gawk '{$4="hsosop"; print $0}'
4.script
gawk -F: -f script1 /etc/passwd
script1:
{txt="the name of user is "; print txt $1}
5.处理数据前后运行脚本
gawk -F: 'BEGIN {print "before deal"} {print $1}' /etc/passwd
gawk 'BEGIN {print "BEGIN";a=10}{print a=a+1} END {print "END"}' /etc/passwd
二、进阶
1.变量
1.1、内建变量
FS: 输入字段分隔符
RS: 输入数据行分隔符
OFS: 输出字段分隔符
ORS: 输出数据行分隔符
FIELDWIDTHS: 分隔符空格 每个field的宽度
1.2、数据变量
FILENAME: 文件名
FNR: 当前文件行数
NF: 总字段数
NR: 已处理的行数
ARGC: 参数个数
ARGV[0]: 参数数组
ENVIRON["HOME"]
1.3、自定义变量
gawk -F: '{print $n}' n=1 /etc/passwd
2.数组处理
for(var in array) {
do something ...
}
delete var["index"]
3.模式匹配
gawk '/root/ {print $0}' /etc/passwd
gawk '$1 ~ /^d/ {print $0}' /etc/passwd
gawk '$1 !~ /^d/ {print $0}' /etc/passwd
4.数学表达式
gawk -F: '$3 == 1000 {print $0}' /etc/passwd
==、>、<、>=、<=
5.结构化
gawk -F: '{
if ($3 > 100) {
print $3
}
else
{
}
}' /etc/passwd
while(condition) {
statements;
}
do {
statements;
} while(condition)
for(i = 1; i < 10; i++) {
statements;
}
printf: 跟C语言一样
6.内建函数
6.1、数学函数
atan2(x,y) cos(x) sin(x) exp(x) int(x) log(x) rand() sqrt(x) srand(x)
6.2、字符串
asort(arr1[, arr2]) asorti(arr1[, arr2])
gensub(reg, s, h [,target]) gsub(reg, s [, target]) sub(reg, s [, target])
index(s, t) length([s])
match(reg, s [, arr])
split(s, a [, reg])
substr(s, i [,n]) tolower(s) toupper(s)
6.3、时间函数
mktime(datespec) strftime(format [,timestamp]) systime()
6.4、自定义函数
function name([var])
{
statements
}
相关推荐
gawk正则表达式Regular ExpressionsRegular Expressions
它提供了awk语言的演变历史,安装gawk的说明,以及实现细节笔记。最后,还有基础编程概念的讨论,以及一个完整的词汇表(Gloss)。 在编程领域,GNU AWK(GAWK)是一门被广泛使用的语言,它特别适合于处理文本文件...
最后,附录部分提供了关于awk语言演变的资料、gawk的安装指南、实现笔记和基本编程概念的简要介绍。这些附录为读者提供了深入理解和使用awk所需的额外信息。 总而言之,《GAWK: Effective AWK Programming - GNU ...
### awk学习使用笔记及举例 #### 1. awk简介 awk是一种专为文本处理而设计的编程语言,常用于Linux/Unix环境下。它可以处理来自标准输入、文件或其它命令输出的数据。awk支持用户自定义函数和动态正则表达式等功能...
1.4.2 使用df命令 26 1.4.3使用du命令 27 1.5 操作数据文件 28 1.5.1 数据排序(sort) 28 1.5.2 搜索数据 (grep) 30 1.5.3 压缩数据 30 1.5.4 归档数据(tar) 33 1.6 使用Linux环境变量 34 1.6.1 设置环境变量 34 ...
root@zjh-vm:/home/work# apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext ``` 这些软件包的安装是为后续构建过程中的依赖关系做准备。如`libssl-dev`用于支持SSL...
在Linux系统中,通常使用的`awk`版本是GNU `awk`(gawk),它包含了一些扩展功能。 ### 1. `awk`简介 `awk`的工作方式是逐行扫描文件,根据用户定义的模式对匹配的行执行指定的操作。如果未指定模式,它会处理所有...
它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这 样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的...
【PetaLinux 创建笔记-长期维护版1】 PetaLinux 是一个专为Xilinx FPGA(现场可编程门阵列)系统芯片设计的嵌入式Linux系统开发工具包。该工具包提供了一整套流程,包括从项目初始化到构建完整的Linux系统镜像。...
它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这 样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的...
### 新SNMP开发笔记知识点详解 #### 一、配置Ubuntu的编译环境 在进行SNMP(简单网络管理协议)相关的开发工作之前,首先需要在Ubuntu操作系统上搭建一个适合的编译环境。这一过程主要涉及以下几个步骤: 1. **...
使用AWK时,可以按照以下三种方式之一调用AWK命令: 1. 直接在命令行中嵌入AWK脚本,并指定输入文件。例如: ``` awk '[options] program-text file-list' ``` 其中,`[options]` 是AWK的常用选项,比如 `-F` ...
### awk学习笔记精要 #### 1. awk简介 awk是一种功能强大的文本处理语言,主要用于在Linux/Unix环境中处理文本和数据。它能够从标准输入、文件或其它命令的输出中提取并处理数据,支持自定义函数和动态正则表达式...
在选择软件包时,要确保安装了ns2所需的必备组件,如`gcc`, `gcc-g++`, `gnuplot`, `make`, `more`, `patch`, `perl`, `tar`, `tcsh`, `gawk`, `gnuplot`, `gzip`和`XFree86-prog`等。 安装完成后,运行桌面的...