`
MyEyeOfJava
  • 浏览: 1152017 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7af2d6ca-4fe1-3e9a-be85-3f65f7120bd0
测试开发
浏览量:71171
533896eb-dd7b-3cde-b4d3-cc1ce02c1c14
晨记
浏览量:0
社区版块
存档分类
最新评论

一分钟学awk够用(产品经理都懂了)

awk 
阅读更多

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


1.什么是AWK

 

(1)Aho、Weinberger、Kernighan三位发明者名字首字母;

(2)一个行文本处理工具;

 


2.AWK基本原理

 

2.1原理:逐行处理文件中的数据

 

2.2语法

awk 'pattern + {action}'

说明:

(1)单引号''是为了和shell命令区分开;

(2)大括号{}表示一个命令分组;

(3)pattern是一个过滤器,表示命中pattern的行才进行action处理;

(4)action是处理动作;

(5)使用#作为注释;

例子:显示hello.txt中的第3行至第5行

cat hello.txt | awk 'NR==3, NR==5{print;}'


2.3pattern说明

pattern参数可以是egrep正则中的一个,正则使用/pattern/

例子:显示hello.txt中,正则匹配hello的行

cat hello.txt | awk '/hello/'

说明:

(1)pattern和action可以只有其一,但不能两者都没有;

(2)默认的action是print;

例子:显示hello.txt中,长度大于100的行号

cat hello.txt | awk 'length($0)>80{print NR}'

 


3.内置变量

 

FS 分隔符,默认是空格

NR 当前行数,从1开始

NF 当前记录字段个数
$0 当前记录
$1~$n 当前记录第n个字段
例子:显示hello.txt中的第3行至第5行的第一列与最后一列

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程序结束前,做一些收尾的工作。

例子:统计字符个数

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中定义的变量:使用单引号即可;

#!/bin/bash

STR="hello"

echo | awk '{

print "'${STR}'";

}'

(2)awk中使用shell命令:使用双引号,或者system命令;

#!/bin/bash

echo hello | awk '{

print $0 | "cat"

}'

或者

#!/bin/bash

echo | awk '{

system("date > date.txt")

}'

(3)awk中的变量传出至shell:没有什么好方法,老老实实用文件吧;

(4)getline:awk里,从文件中读取变量到awk中

#!/bin/bash

echo | awk '{

while(getline < "date.txt")

{

print $0;

}

}'

 


8.结束语

 

对不起,楼主欺骗了你,认真看完本文或许不止1分钟。不过,如果你真的认真阅读并超过了1分钟,相信你会有收获。

分享到:
评论

相关推荐

    一分钟学awk够用

    ### 一分钟学awk够用 #### 1. 什么是AWK? AWK 是一种强大的文本处理工具,由 Alfred Aho、Peter Weinberger 和 Brian Kernighan 三人共同开发,其名称正是他们姓氏首字母的组合。AWK 主要被设计用于处理结构化的...

    awk知识文档学习

    Awk按照记录和字段的方式来查看文本文件,每个记录通常对应文件的一行,而字段则是记录中的数据单元,例如一个单词或者一个数值。 ### 2. 基本概念 - **变量**: Awk中的变量用于存储数据,可以是数字或字符串。 - ...

    awk学习手册--unix 系统学习

    本书是一部针对初学者的awk编程教程,旨在帮助读者快速掌握awk这一强大的文本处理工具。awk是一种在Unix和类似操作系统如Solaris中广泛使用的编程语言,特别适合处理结构化的数据文件,例如CSV或TSV格式的数据。它以...

    awk入门到精通.pdf

    《awk入门到精通》这本书是一本专为学习awk语言设计的指南,主要关注awk适用的问题类型和常用的解题策略。作者希望通过一系列具有代表性的实例,帮助读者快速掌握awk的使用技巧和特性。书中实例逐步深入,互相连贯,...

    awk脚本学习快速入门

    在IT领域,awk是一种强大的文本分析工具,尤其在Unix/Linux环境中广泛使用。它允许用户处理文本文件、流数据,甚至可以进行数据转换和报告生成。本资料包是针对awk脚本学习的快速入门教程,旨在帮助初学者快速掌握...

    awk基础篇学习文档

    AWK是一种编程语言,专门用于文本和数据的模式扫描和处理。在Linux和Unix操作系统中,AWK因其强大的文本处理能力而广泛应用。它的名字来源于其创始人Alfred Aho、Peter Weinberger和Brian Kernighan的姓氏的首字母。...

    awk入门级教材awk入门awk入门

    **awk** 是一种强大的文本处理工具,主要用于在一组文件上查找符合特定模式的行或字段,并执行相应的操作。它简化了数据选择和转换的过程,使其变得更为直观和简单。 #### 二、awk的基本操作 awk的主要功能包括: ...

    sed awk学习

    例如,SED 和 awk 的输出都不允许送到向程序提供输入的同一个文件,否则会使它变成乱码。如果工作内容中包含 shell 可执行的字符如“$和*”,那么必须用单引号引起。 此外,SED 和 awk 都可以用 -n 来关闭自动输出...

    awk参考资料下载awk

    awk是一种强大的文本分析工具,主要在Linux/Unix环境中使用,由Alfred Aho、Brian Kernighan和Peter Weinberger三位大师共同开发。它能够处理来自标准输入、文件或命令输出的数据,通过模式匹配和自定义操作对文本...

    awk手册,学习AWK一定要收藏

    #### 一、AWK简介 AWK是一种强大的文本处理工具,主要用于处理结构化的数据文件。它是一种脚本语言,能够高效地读取、解析和处理文本文件,并输出用户需要的结果。AWK适用于各种场景,如数据分析、日志文件处理、...

    awk学习思维导图.png

    awk学习路线

    linux_awk 学习手册

    【Linux Awk 学习手册】 awk 是一个强大的文本分析工具,源于 UNIX 系统,由 Aho、Weinberg 和...无论是快速查找、替换、统计,还是进行更复杂的分析和报告生成,awk 都能胜任,值得每一个 Linux 用户深入学习和掌握。

    awk学习awk学习awk学习awk学习

    该命令首先通过`cat`命令读取文件内容,然后通过管道传递给awk,awk再打印出每一行的第一列。 4. **命令行参数**: awk可以通过命令行参数传递值给脚本。 ```sh awk -v var=123 'BEGIN { print "变量值为: " var ...

    awk学习手册.docx

    awk是Linux/Unix环境中强大的文本...例如,查找日志文件中的特定错误代码、统计文件中单词出现的频率、提取文件中的特定信息等,都是awk能轻松胜任的任务。继续深入学习,你将能够编写更复杂的awk脚本来解决实际问题。

    AWK语言学习资料--基础知识

    AWK是一种强大的文本分析工具,尤其在处理结构化文本文件如日志、配置文件时,其强大之处得以显现。在Linux和Unix环境中,AWK常用于数据处理和报告生成。以下将详细介绍AWK语言的基础知识及其重要性。 1. **基本...

    awkKoans:通过做 AWK 来学习 Awk

    AWK公证Awk koans 是一个框架,用于通过进行基于实验室的小型练习来学习 AWK。安装基本指令是下载 zip 分发包,解压到某个地方,然后运行 ​​python koans.py视窗这需要某种可以显示ansi颜色的终端。 我已经和 ...

    awk详细用法小结awk awk

    在Linux/Unix环境中,awk是一个标准工具,其强大之处在于能够对输入文件的每一行进行模式匹配,并执行相应的操作。 awk最初由Alfred Aho、Brian Kernighan和Peter Weinberger在贝尔实验室开发,随后被GNU项目采用并...

    awk学习资料最近整理的资料

    awk是一种强大的文本分析工具,常用于处理Linux或Unix系统中的结构化数据文件。它通过模式匹配和动作执行来解析和操作文本,对于日志分析、数据提取和转换等任务非常高效。在shell环境中,awk是程序员和系统管理员的...

Global site tag (gtag.js) - Google Analytics