概述
AWK 是一种解释执行的编程语言。
它很是的强大,被设计用来专门处理文本数据。
AWK 的名称是由它们设计者的名字缩写而来 —— Afred Aho, Peter Weinberger 与 Brian Kernighan。正则表达式
部分 AWK 的典型应用场景
AWK 能够作很是多的工做。 下面只是其中的一小部分:编程
安装
默认Linux系统中是安装 AWK 的。
使用 which 命令能够判断你当前的系统上是否安装了 AWK。segmentfault
若是没有安装,能够使用 yum 包管理工具安装:centos
yum install gawk
which 命令确认 AWK 已成安装成功:缓存
which awk
若是获得以下的结果,则说明你已经成功安装 awk:安全
/bin/awk
实战
带着问题来学习,本次解决解决下这些问题。编程语言
测试文本 score.txt
Aaron Physics 87 Abel Maths 98 Rahul Chinese 90 Buck Biology 87 Byron English 85 Dave History 89 Enoch Chemistry 89 //打印出文件的内容。 [root@vagrant-centos65 awk]# awk '{print $0}' score.txt Aaron Physics 87 Abel Maths 98 Rahul Chinese 90 Buck Biology 87 Byron English 85 Dave History 89 Enoch Chemistry 89 //打印出第一列。 [root@vagrant-centos65 awk]# awk '{print $1}' score.txt Aaron Abel Rahul Buck Byron Dave Enoch //打印出最后一列。 [root@vagrant-centos65 awk]# awk '{print $NF}' score.txt 87 98 90 87 85 89 89 //打印出第一行。 [root@vagrant-centos65 awk]# awk 'NR==1{print $0}' score.txt Aaron Physics 87 //打印出最后一行。 [root@vagrant-centos65 awk]# awk 'END{print}' score.txt Enoch Chemistry 89 //打印出指定行的指定列。好比 第四行第二列 [root@vagrant-centos65 awk]# awk 'NR==4{print $2}' score.txt Biology //经过匹配模式串输出列。 [root@vagrant-centos65 awk]# awk '/b/{print $0}' score.txt Abel Maths 98 //以任意顺序输出列。 [root@vagrant-centos65 awk]# awk '{print $2 "\t" $1}' score.txt Physics Aaron Maths Abel Chinese Rahul Biology Buck English Byron History Dave Chemistry Enoch //行开头匹配。 [root@vagrant-centos65 awk]# awk '/^A/' score.txt Aaron Physics 87 Abel Maths 98 [root@vagrant-centos65 awk]# awk '/^B/' score.txt Buck Biology 87 Byron English 85 //行结束匹配。 [root@vagrant-centos65 awk]# awk '/89$/' score.txt Dave History 89 Enoch Chemistry 89