1分钟懂awk-技不在深,够用就行
1.AWK
(1)Aho、Weinberger、Kernighan三位发明者名字首字母;
(2)一个行文本处理工具;
2.基本原理
2.1原理:逐行处理文件中的数据
2.2语法:
1
|
awk 'pattern + {action}'
|
说明:
(1)单引号”是为了和shell命令区分开;
(2)大括号{}表示一个命令分组;
(3)pattern是一个过滤器,表示命中pattern的行才进行action处理;
(4)action是处理动作;
(5)使用#作为注释;
例子:显示hello.txt中的第3行至第5行
1
|
cat hello.txt | awk 'NR==3, NR==5{print;}'
|
2.3pattern说明
pattern参数可以是egrep正则中的一个,正则使用/pattern/
例子:显示hello.txt中,正则匹配hello的行
1
|
cat hello.txt | awk '/hello/'
|
说明:
(1)pattern和action可以只有其一,但不能两者都没有;
(2)默认的action是print;
例子:显示hello.txt中,长度大于100的行号
1
|
cat hello.txt | awk 'length($0)>80{print NR}'
|
3.内置变量
FS 分隔符,默认是空格
NR 当前行数,从1开始
NF 当前记录字段个数
$0 当前记录
$1~$n 当前记录第n个字段
例子:显示hello.txt中的第3行至第5行的第一列与最后一列
1
|
cat hello.txt | awk 'NR==3, NR==5{print $1,$NF}'
|
4.内置函数
gsub(r,s):在$0中用s代替r
index(s,t):返回s中t的第一个位置
length(s):s的长度
match(s,r):s是否匹配r
split(s,a,fs):在fs上将s分成序列a
substr(s,p):返回s从p开始的子串
5.操作符
5.1运算符
类似于c,支持+、-、*、/、%、++、–、+=、-=等诸多操作;
5.2判断符
类似于c,支持==、!=、>、=>、~(匹配于)等诸多判断操作;
6.控制流程
6.1.BEGIN和END
BEGIN和END本质是一个pattern。
BEGIN用于awk程序开始开始前,做一些初始化的工作;
END用于awk程序结束前,做一些收尾的工作。
例子:统计字符个数
1
2
3
4
5
6
7
8
9
10
11
12
|
awk '
BEGIN { count=0; } { count+=length($0); } END { print count; }' |
6.2流程控制语句
(1)if(condition){}else{}
(2)while{}
(3)do{}while(condition);
(4)for(init;condition;step){}
(5)break/continue:如果有END,会执行END中的收尾工作
个流程控制语句用法几乎与c相同。
7.awk与shell的交互
(1)awk中使用shell中定义的变量:使用单引号即可;
1
2
3
4
5
|
#!/bin/bash STR= "hello"
echo | awk '{
print "'${STR}'" ;
}' |
(2)awk中使用shell命令:使用双引号,或者system命令;
1
2
3
4
|
#!/bin/bash echo hello | awk '{
print $0 | "cat"
}' |
或者
1
2
3
4
|
#!/bin/bash echo | awk '{
system( "date > date.txt" )
}' |
(3)awk中的变量传出至shell:没有什么好方法,老老实实用文件吧;
(4)getline:awk里,从文件中读取变量到awk中
1
2
3
4
5
6
7
|
#!/bin/bash echo | awk '{
while (getline < "date.txt" )
{ print $0; } }' |
结束语:对不起,楼主欺骗了你,认真看完本文或许不止1分钟。不过,如果你真的认真阅读并超过了1分钟,相信你会有收获。
http://chuansongme.com/n/949428
相关推荐
MOXA AWK-3121 配置方法及要点说明 MOXA AWK-3121 是一种工业级无线设备,具有 web 功能配置、IP 网络参数设置、工作模式选择、功率增强等特点。本文将详细介绍 MOXA AWK-3121 的配置方法及要点说明。 一、Web ...
Moxa AWK-3131A 三合一工业级无线AP/Bridge/Client 支 持IEEE 802.11n 技术,数据传输率高达300Mbps,满足了 ...AWK-3131A 能够在2.4 或5GHz 频段下操作,并且向后兼 容目前的802.11a/b/g,使您的投资更着眼于未来
### AWK-4121系列室外无线AP/网桥/客户端关键技术知识点 #### 一、产品概述 AWK-4121是一款专为工业级应用设计的室外无线接入点/AP、网桥及客户端三合一设备。它适用于不易布线、布线成本较高或者需要在移动TCP/IP...
awk-思维导图
awk语句`awk '{code}1'`中的`1`是默认模式,相当于没有指定任何模式,其动作默认为`print`,所以`awk '1'`等价于`awk '{print}'`,即打印每一行。 awk的工作流程如下: 1. 执行`BEGIN`代码块中的命令。 2. 从标准...
首先,配置AWK-3121-EU的IP网络参数是实现设备接入网络的基础。通过Web界面可以设置IP地址、子网掩码以及默认网关,为设备提供唯一的网络身份标识。在网络配置中,详细步骤通常包括IP地址的静态分配或通过DHCP自动...
- 多个模式可以通过逻辑运算符组合在一起,例如 `awk '/pat1/ && /pat2/ { print }' 文件名` 仅打印同时含有"pat1"和"pat2"的行。 3. **多文件处理**: - 使用多个文件作为输入,awk将按顺序处理每个文件。 - ...
- **语法**:`BEGIN { awk-commands }` - **示例**:`BEGIN { print "开始处理..." }` - **主体块**:这部分是`awk`程序的主要组成部分,包含具体的处理逻辑。 - **语法**:`pattern { awk-commands }` - **...
`56G` 在56行后打印模式空间内容。 18. **把22行到33行移动到56行后面** ```shell sed -e '22h' -e '23,33H' -e '56G' -e '22,23d' /etc/passwd ``` - **解析**:在上一题的基础上增加了 `-e '22,23d'` 用于...
摩沙AP用戶手冊
《GNU Awk - 中文版1》是一本详细介绍GNU Awk的参考手册,适用于广泛的读者群体,无论是初学者还是经验丰富的程序员。Awk是一种强大的文本分析工具,它基于Alfred V. Aho、Brian W. Kernighan和Peter J. Weinberger...
"Sed-and-Awk-101-Hacks"可能包含如何使用基本的sed命令,如替换、删除、插入行,以及使用地址范围进行特定操作。此外,还可能涉及正则表达式在sed中的应用,如查找和替换模式,以及使用sed进行批量文本编辑。 3. ...
### 一分钟学awk够用 #### 1. 什么是AWK? AWK 是一种强大的文本处理工具,由 Alfred Aho、Peter Weinberger 和 Brian Kernighan 三人共同开发,其名称正是他们姓氏首字母的组合。AWK 主要被设计用于处理结构化的...
这个名为"AWK-file.rar_awk_awk tcl_delay awk_jitter awk _jitter ns-2"的压缩包文件显然是针对网络性能分析的,特别是使用AWK进行分析。下面将详细介绍涉及的知识点。 1. **AWK**: AWK是一种编程语言,由Aho、...
在这个场景下,"All.awk"就扮演了数据分析师的角色。AWK是一种强大的文本分析语言,尤其适合处理结构化的文本数据。它的名字来源于其三位创造者——Alfred Aho、Peter Weinberger和Brian Kernighan的首字母。AWK通过...
标题"awk-script.zip_NS2 awk_awk_ns2_awk_trace"暗示我们关注的是一个`awk`脚本,它设计用来处理与`ns2`追踪相关的任务。`ns2`的追踪文件通常包含大量的网络活动信息,如节点位置、数据包传输、延迟等,而`awk`脚本...
- **《在Window中使用 AWK》**:这本书可能详细介绍了如何在Windows环境下配置和使用awk,对于Windows用户尤其有价值。 通过这些资源,你将能够掌握awk的基本操作,并逐步提升到更高级的文本处理技巧。在实际工作中...
~/MA/`用于匹配不包含“MA”的行。 #### 五、表达式和变量 awk支持字符串和数字类型的常量,以及各种算术操作。变量使用简单,无需显式声明类型,如`x=1`定义了一个名为`x`的变量并赋值为1。此外,awk还支持字符串...
- **Awk程序结构(BEGIN, body, END)**:Awk程序通常包含三个主要部分:BEGIN块在处理任何输入之前执行,body包含核心处理逻辑,END块在处理完所有输入后执行。 - **打印命令**:Awk的打印命令用于输出文本,通常通过...