linux 关于 AWK 解析

关于awk

awk是一个报告生成器,他拥有强大的文本格式化的能力。

其实我么可以利用awk命令将一些文本整理成我们想要的样子,比如把一些文本整理成“表”的样子。然后打印出来,至于格式化能力会举例出来,自然会明白。

awk是有Alfred Aho,Peter Weinberger好人Brian Kernighan 这三人创造的,awk由这三个人的姓氏的首个字母组成。

awk早期是在unix上实现的,所以,我们现在在linux中所使用的AWK其实是gawk,也就是GNU awk,简称gawk,awk还有一个版本,New awk,简称nawk,但是linux中最常用的还是gawk。

linux  关于 AWK 解析

awk其实是一门编程语言,它支持调节判断,数组,循环等功能。所以,我们也可以把awk理解成一个脚本编译解释器。

grep,sed,awk被称为linux中的“三剑客”。

我们总结一下这三个“剑客”的特长。

grep更适合单纯的查找或匹配文本。

sed 更适合编辑匹配到的文本。

awk更适合格式化文本,对文本进行较复杂格式处理。

awk基础

awk基本语法:awk[options] ‘Patter{Action}’ file

其中Action指的就是动作awk擅长文本格式化,并且将格式化以后的文本输出,所以awk最常用的动作就是printprintf,

先举个简单的例子不用[options],也不知道pattern,直接用最简单的action。如下:

linux  关于 AWK 解析

上图我们只是使用了awk执行一个打印的动作,将testd文件内容打印出来。

在换个例子:

linux  关于 AWK 解析

上图中没有使用optionpattern,上图中的awk‘{print$5}’ 表示输出df的信息的第5列,$5表示将当前行按照分隔符分割后的第5列,不指定分隔符时,默认使用空格作为分隔符,你一定发现了上述信息用的空格不止有一个,而是连续多个空格,awk自动将连续的空格理解为一个分割符了。

awk是逐行处理的,逐行处理就是说,当awk处理一个文本时,会一行一行进行处理,处理完当前行,在处理下一行,awk默认以“换行符”为标记,识别每一行,也就是说,awk跟我们人类一样,每次遇到“回车换行”,就认为是当前行的结束,新的一行的开始,awk会按照用户指定的分割符去分割当前行,如果没有指定分隔符,默认使用空格作为分隔符。

我们也可以一次输出多列,使用逗号隔开要输出的多个列,如下,一次性输出第一列和第二列

linux  关于 AWK 解析

同理,也可以一次性输出多个指定的列,如下

linux  关于 AWK 解析

我们发现第一行并没有第5列,所以没有输出任何文本,而第二行有第5列,所以输出了。

linux  关于 AWK 解析

未完待续!

原创文章,作者:eedsxb,如若转载,请注明出处:http://www.178linux.com/86397

(2)
eedsxbeedsxb
上一篇 2017-09-09 20:03
下一篇 2017-09-09 20:39

相关推荐

  • 什么叫Linux

    什么叫linux:     Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 谁编写的linux: Linux的出现,最早…

    Linux干货 2017-03-27
  • 第四周作业

    Linux系统文件管理使用案例 1、 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 首先,利用cp命令将/etc/skel目录复制为/home/tuser1: [root@localhost ~]# cp -r /etc/skel /home/tuser1 随后通过chmo…

    Linux干货 2018-03-24
  • http协议及httpd特性详解

    前言 随着互联网的迅猛发展和网络的普及,各类网站层出不穷,网站也成为企业宣传和实力展现的主要途径之一,说到网站就不得不说一下web服务了,现在比较流行的web服务还是当属Apache即httpd。本文将详解http协议及httpd的特性。 http协议详解 http协议 http: Hyper Text Transfer Protocol 超文本传输协议 传…

    Linux干货 2015-04-13
  • Linux第一周学习博客作业

    对第一周学习的内容进行总结

    Linux干货 2017-12-02
  • 第三周作业

      1. who |cut -d ” ” -f1|uniq 2.who |head -1 3.cat /etc/passwd | cut -d: -f7|uniq -c |sort -n|tail -1|grep -o “/[[:alnum:]].*” 4. cat /etc/passwd |sort…

    2017-12-16
  • 通过fast-cgi方式在三台主机部署phpwind并设置为https站点

    通常来说httpd用来处理静态的网页请求,动态的资源请求以前是通过CGI的方式进行处理的,但是CGI的方式的处理过程是这样:有动态资源请求,服务器会fork一个CGI进程进行资源处理,处理完成后这个进程会退出,当再有新的动态资源请求,又会fork一个进程,这样的效率是很低的。后来就有了通过加载php模块的方式,即:httpd服务器启动之后会自动加载php动态…

    2017-06-04

评论列表(1条)

  • 6+1=7
    6+1=7 2017-11-16 12:33

    求继续更新!!!