AWK介绍和基本用法

AWK介绍:

        awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

        awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan
姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 ,
三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。

        基本用法:awk【options】’BENGIN‘{action;...}pattern{action;...}END{action;...}‘file...

        BENGIN:处理文件之前的操作(通常用来做表头)

        END:处理完后的操作(通常用来做汇总)

   工作原理:从文件中自动读取第一行到内存中,然后把行切割成若干字段(列/域/属性)用awk自带变量$1~$n来表示。$0代表一整行。处理完第一行会自动读取第二行进行处理。

        基本格式:awk【options】‘program‘file...(program由patter和action组成)

        program:pattern(处理方式),当内存中的行满足patter定义时才会对行进行处理,简单来说就是满足指定的条件才会进行处理。

        action(动作):主要是用来打印,一种是无格式的打印(print),一种是有格式的打印(printf)可以指定打印格式。例如:左/右对齐宽度等。

        示例:awk ’{print “hello,awk”}‘  ,输入命令后没有反应,需要输入才有反应。因为没有跟文件所以读取标准输入,前面没有定义pattern,所以输入的都符合条件,然后做出‘打印‘动作。

         awk ‘{print 2**3}‘(文件或标准输入) :指数运算,打印行数取决于文件行数或初入行数。

        awk‘{print 2*3}‘:(同上)乘法运算。(除法运算支持小数)

        awk‘{print }‘ +文件名/awk‘{print $0}‘+文件名:打印文件所有行

        awk‘{print $[1~n]}‘+文件名:打印文件指定1~n列。默认空白字符为分隔符

        awk -f:‘{print $[1~n]}‘ +文件名:同上。【-f:】指定:为分隔符

        awk -f:‘{print $[1~n],$[1~n]}‘+文件名:打印多列用逗号隔开。

        awk -f:‘{print $[1~n]“:”$[1~n]}‘+文件名 :两列之间用":"作为分隔符

        

时间: 2024-10-29 19:09:49

AWK介绍和基本用法的相关文章

LINUX 下 find grep sed awk 的常见基本用法特点

LINUX 下 find grep sed awk 的常见基本用法特点 只为让自己具有更高的水准,这就开始了长达6个月的小白进阶路! 这几天学习linux基础命令有点犯蒙,尤其是对文件查找这块.所有我想把一些我觉得常用的实用的参数项总结下来,大神勿喷哈... 不到之处请大家指教,小女子在此谢过了. 一.find:命令用于查找文件系统中指定的文件,其命令格式为: 1.find pathname -options [ -print  -exec  -ok ... ] (1)find 命令的参数: p

awk下 gsub函数用法

(2012-03-27 01:37:28) 标签: awk gsub linux 函数 it 分类: linux gsub函数则使得在所有正则表达式被匹配的时候都发生替换 gsub(regular expression, subsitution string, target string);简称 gsub(r,s,t) 一.遇到的问题: 问题:echo "a b c 2011-11-22 a:d" | awk '$4=gsub(/-/,"",$4)'为啥 输出后 2

FlexboxLayout 的一些基本介绍与基本用法

1什么是 Flexbox 简单来说 Flexbox 是属于web前端领域CSS的一种布局方案,是2009年W3C提出了一种新的布局方案,可以简便.完整.响应式地实现各种页面布局,并且 React Native 也是使用的 Flex 布局. 你可以简单的理解为 Flexbox 是CSS领域类似 Linearlayout 的一种布局,但是要比 Linearlayout 要强大的多. 2什么是 FlexboxLayout? 刚才说了 Flexbox 是CSS领域的比较强大的一个布局,我们在 Andro

awk: 报告生成器 简单用法

1:tail -5  /etc/fstab | awk '{print $2,$4}' 打印/etc/fstab 文件里后五行的第2和第4段内容 [[email protected] temp]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Wed Dec 30 06:43:45 2015 # # Accessible filesystems, by reference, are maintained under '/dev/di

安装软件包的三种方法、rpm包介绍及工具用法、yum用法及搭建本地仓库

一.安装软件包的三种方法 rpm工具 rpm(Redhat Package Manager)RPM软件包管理器,是以一种数据库记录的方式来将我们所需要的套件安装到Linux主机的一套管理程序.rpm包是预先在Linux机器上编译好并打包好的文件,安装起来非常快捷.但是有一个缺点:安装环境必须与编译时的一致或相当:包与包之间存在着相互依赖的情况,安装或卸载包时需要先把依赖的包安装或卸载,如果依赖的包是系统所必须的,那就不能卸载这个包. yum工具 (类似于苹果手机里面的app store) yum

5周第1次课 安装软件包的三种方法 rpm包介绍 yum工具用法 yum搭建本地仓库

Linux 安装软件的三种方式 rpm 工具:此种安装方式即通过rpm 工具对介质上的rpm 包进行安装. yum 工具:核心依然是rpm,但不同的是它是基于网络的源,并会自动安装依赖组件. 源码包:源代码包,需要相应的编译器进行编译,然后才能安装.三种方式里最难的. 1.rpm 工具 rpm包的来源:光盘或其他地方拷贝本次实验,将Centos7虚拟光盘加载到虚拟机上 1.1 进入系统后执行挂载 [[email protected] ~]# mount /dev/cdrom /mntmount:

shell介绍及基本用法

8.1:shell介绍: shell是一个命令解释器,提供用户和机器之间的交互,支持特定语法,支持逻辑判断.循环,并且每个用户都可以有自己的shell: Centos默认的shell是bash(Bourne Agin Shell):其实为了纪念sh的创造者bourne这个用户: 常见的还有zsh(power - shell)    ksh(korn - shell)这两种:支持的特性比较少: 8.2:命令历史:history 在系统中用户使用的命令都会保存下来,会保存在当前用户的家目录下: hi

安装软件包的三种方法 rpm包介绍 rpm工具用法yum工具用法 yum搭建本地仓库

7.1 安装软件包的三种方法7.2 rpm包介绍将光驱挂载到/mnt这些文件与目录就是光驱的里面的内容,安装系统就用到这些文件其中有一个目录都是rpm文件7.3 rpm工具用法安装升级更新版本例如:卸载什么不显示才是正常查询安装的包rpm -qa列出来的都可以直接卸载,但不要随便卸载,直接卸载提示失败,要先卸载它关联的包才可以卸载它查询一个包是否安装列出安装包安装的文件查看文件是由那个安装包安装的如果不知道这个文件的位置,可以像下面这样输入7.4 yum工具用法yum是可以自动安装依赖的包,不需

awk介绍

awk 是一个强大的文本处理工具,它将文本逐行读入,并进行切片,默认以空白格为分割符,对单个切片进行分析,处理. 用法: awk '{pattern + action}' {filenames} 尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令.花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组. pattern就是要表示的正则表达式,用斜杠括起来. awk语言的最