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

相关推荐

  • 浅谈DNS基本原理以及实现方法(一)

     DNS(Domain Name System,域名系统),是目前互联网上最不可或缺的服务器之一,我们在互联网从访问一个网站,到发送一封电子邮件,再到定位域中的域控制器,无时无刻不再使用着DNS为我们提供的服务,那为什么我们会需要这样一个服务那?带着这样一个疑问让我们先来认识一下什么是DNS吧  DNS最核心的工作就是域名解析,也就是把计…

    Linux干货 2015-12-15
  • 第一周博客作业

       本文介紹計算机的组成及其功能 、Linux各版本的联系与区别、Linux的哲学思想、Linux系统上命令的使用格式及介绍部分命令、如何在Linux系统上获取帮助信息以及Linux发行版的基础目录名称以及规定。 一、计算机的组成及其功能 1)什么是计算机? 想了解计算机的组成,首先得了解计算机的含义。计算机其实是:接收用户输入指令与数…

    Linux干货 2016-12-04
  • Linux中的网络管理

    1. ifconfig命令的使用方法 ifconfig是一个比较老的命令了,以后可能会慢慢被ip命令替代。ifconfig命令可以用来配置网卡ip地址,配置网卡别名等信息。 ifconfig ifconfig 网络设备名:用来查看网卡的信息,如ip地址,子网掩码,MAC地址等信息 ifconfig eth0 add 172.16.0.35/16:配置eth0…

    2017-05-02
  • MBR详解

    前言:     话说,现在买电脑如果预装win8以上的系统,基本上都是GPT。想当年博主买的电脑预装的win8磁盘分区样式就是GPT,而且貌似如果想把win8换win7就得把GPT改成MPR。虽然会在最后提到GPT,不过本文还是主要讲解MBR,并通过实验验证。 机械硬盘: 主引导记录(Master Boot Record,缩写:MBR),…

    Linux干货 2016-11-14
  • 初窥门径之脚本书写

    一、几个脚本的编写: 1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。 #!/bin/bash echo "HOSTNAME: $HOSTNAME" echo "IPV4 A…

    Linux干货 2016-08-15
  • 第二周 Linux基础命令入门(二)

    1、描述Linux上的文件管理类命令并详解。 2、描述Bash的工作特性。 3、描述文件的元数据信息详解。 4、描述命令别名的使用。 5、详解文件通配符。

    Linux干货 2017-12-18

评论列表(1条)

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

    求继续更新!!!