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
下一篇 2017-09-09

相关推荐

  • 用户权限过滤练习(w4)

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。 [root@keyou ~]# cp -r /etc/skel/ /home/tuser1 | chmod -R g-rwx,o-rw…

    系统运维 2016-11-20
  • 第三周作业

    1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who | cut -d' ' -f1 | sort -u 2.取出最后登录到当前系统的用户的相关信息。 […

    Linux干货 2017-01-04
  • iptables

    一、前言 什么是iptables?当我们启动iptables时,使用service命令可以启动iptables。但是并非使用service启动的iptables就能说明其是一个服务。Iptables是一个便以我们写规则的工具,真正起作用的是内核中的netfilter一个框架。Netfilter内置了5个hook函数,当一个数据包交由此机器时,经过这5个hoo…

    Linux干货 2015-10-27
  • 系统自动化安装、selinux

    系统自动化安装 系统启动流程:bootloader–>kernel(initramfs)–>rootfs–>anaconda–>/sbin/init anaconda: 系统安装程序    tui: 基于图形库curses的文本配置窗口 &nbsp…

    Linux干货 2016-09-22
  • 计算机的组成及其功能

    1.计算机的组成及其功能 1.1计算机的硬件基本结构 从ENIAC到当前最先进的计算机都采用的是冯·诺依曼体系结构分别是:控制器,运算器,存储器,输入与输出设备 控制器:将指令逐条从存储器中取出,经译码分析后向全机发出相应         的操作控制信号作用于其他部件,使各部件有…

    Linux干货 2016-10-28
  • 时间、screen、echo等——Linux基本命令(5)

    1.     时间 (1)查询时间: date          +%F  年月日          +%T  时分秒  &nbs…

    2017-07-13

评论列表(1条)

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

    求继续更新!!!