`

1分钟懂awk-技不在深,够用就行

 
阅读更多

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 配置方法及要点说明 MOXA AWK-3121 是一种工业级无线设备,具有 web 功能配置、IP 网络参数设置、工作模式选择、功率增强等特点。本文将详细介绍 MOXA AWK-3121 的配置方法及要点说明。 一、Web ...

    AWK-4121介绍

    ### AWK-4121系列室外无线AP/网桥/客户端关键技术知识点 #### 一、产品概述 AWK-4121是一款专为工业级应用设计的室外无线接入点/AP、网桥及客户端三合一设备。它适用于不易布线、布线成本较高或者需要在移动TCP/IP...

    无线AP藦萨AWK-3131A

    Moxa AWK-3131A 三合一工业级无线AP/Bridge/Client 支 持IEEE 802.11n 技术,数据传输率高达300Mbps,满足了 ...AWK-3131A 能够在2.4 或5GHz 频段下操作,并且向后兼 容目前的802.11a/b/g,使您的投资更着眼于未来

    awk-思维导图

    awk-思维导图

    awk-培训.docx

    awk语句`awk '{code}1'`中的`1`是默认模式,相当于没有指定任何模式,其动作默认为`print`,所以`awk '1'`等价于`awk '{print}'`,即打印每一行。 awk的工作流程如下: 1. 执行`BEGIN`代码块中的命令。 2. 从标准...

    awk使用手册

    - 多个模式可以通过逻辑运算符组合在一起,例如 `awk '/pat1/ && /pat2/ { print }' 文件名` 仅打印同时含有"pat1"和"pat2"的行。 3. **多文件处理**: - 使用多个文件作为输入,awk将按顺序处理每个文件。 - ...

    moxa AirWorks AWK-1137C User’s Manual

    摩沙AP用戶手冊

    awk教程--别人家的笔记

    - **语法**:`BEGIN { awk-commands }` - **示例**:`BEGIN { print "开始处理..." }` - **主体块**:这部分是`awk`程序的主要组成部分,包含具体的处理逻辑。 - **语法**:`pattern { awk-commands }` - **...

    awk-sed高级练习题pdf

    `56G` 在56行后打印模式空间内容。 18. **把22行到33行移动到56行后面** ```shell sed -e '22h' -e '23,33H' -e '56G' -e '22,23d' /etc/passwd ``` - **解析**:在上一题的基础上增加了 `-e '22,23d'` 用于...

    linux-awklinux-awk

    Awk 的主要工作方式是逐行扫描文件,寻找符合特定模式的行,并在这些行上执行预定义的操作。如果未指定任何操作,则默认行为是将匹配的行输出到标准输出(通常是屏幕)。若没有指定模式,则会处理所有指定的行。 ...

    GNU Awk - 中文版1

    《GNU Awk - 中文版1》是一本详细介绍GNU Awk的参考手册,适用于广泛的读者群体,无论是初学者还是经验丰富的程序员。Awk是一种强大的文本分析工具,它基于Alfred V. Aho、Brian W. Kernighan和Peter J. Weinberger...

    Vim-101-hacks、Sed-and-Awk-101-Hacks、Linux-101-hacks 英文版(高清)PDF

    "Sed-and-Awk-101-Hacks"可能包含如何使用基本的sed命令,如替换、删除、插入行,以及使用地址范围进行特定操作。此外,还可能涉及正则表达式在sed中的应用,如查找和替换模式,以及使用sed进行批量文本编辑。 3. ...

    一分钟学awk够用

    ### 一分钟学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-file.rar_awk_awk tcl_delay awk_jitter awk _jitter ns-2"的压缩包文件显然是针对网络性能分析的,特别是使用AWK进行分析。下面将详细介绍涉及的知识点。 1. **AWK**: AWK是一种编程语言,由Aho、...

    all-awk.rar_All.awk_NS2仿真_all awk_awk_awk-scripts

    在这个场景下,"All.awk"就扮演了数据分析师的角色。AWK是一种强大的文本分析语言,尤其适合处理结构化的文本数据。它的名字来源于其三位创造者——Alfred Aho、Peter Weinberger和Brian Kernighan的首字母。AWK通过...

    awk-script.zip_NS2 awk_awk_ns2_awk_trace

    标题"awk-script.zip_NS2 awk_awk_ns2_awk_trace"暗示我们关注的是一个`awk`脚本,它设计用来处理与`ns2`追踪相关的任务。`ns2`的追踪文件通常包含大量的网络活动信息,如节点位置、数据包传输、延迟等,而`awk`脚本...

    awk使用手册awk使用手册

    ### awk 使用手册详解 #### 一、awk简介与基本概念 awk 是一款强大的文本处理工具,在 Unix 和类 Unix 操作系统中广泛使用。它最初由 Alfred Aho、Peter Weinberger 和 Brian Kernighan 开发,因此得名 awk(取自...

    awk教程-awk教程.rar

    - **《在Window中使用 AWK》**:这本书可能详细介绍了如何在Windows环境下配置和使用awk,对于Windows用户尤其有价值。 通过这些资源,你将能够掌握awk的基本操作,并逐步提升到更高级的文本处理技巧。在实际工作中...

Global site tag (gtag.js) - Google Analytics