skyfans之每天一个Liunx命令系列之四十九:awk之3

今天我们继续来学习每天一个命令,今天我们继续学习章节内容:查找类命令(SEARCH),这章里将包括我们运维常用的三剑客内容,今天我们继续来学习awk(文本和数据进行处理,也可以理解为一种编程语言)命令。它能使用正则表达式等其他过滤条件搜索文本,并把匹配的内容打印出来。

本节我们来学习稍微高级一点的awk的内容–awk脚本。

1.awk脚本基本结构

awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file

说明:awk的一个脚本通常已如下部分组成:begin开始语句块、通用语句块、end语句块三部分组成。

来我们来看一个例子:

echo -e "skyfans \nis \nGood \nTeacher" | awk 'BEGIN{ print "Start" } { print } END{ print "End" }'

在这里插入图片描述
通过这个例子,我们来学习下awk的工作原理。

2.awk的工作原理

第一步:执行BEGIN{}语句块中的语句;
第二步:从文件读取一行,然后执行pattern{ }语句块,此时执行过程时,它是从第一行到最后一行重复这个过程,直到文件内容全部被读取完毕。
第三步:当到末尾时,执行END{}语句块。

3.awk内置变量

这里我们来举个例子说明,就举一个有名的数学故事吧,高斯算数100以内的数字的和。

seq 100 | awk 'BEGIN{ sum=0; print "总和:" } { sum+=$1 } END{ print "等于"; print sum }'

在这里插入图片描述
怎么样,是不是很神奇,使用awk命令也可以直接算出1+2+3+。。。+100的和。

4.外部变量传值

easy=66666
echo | awk -v EASY=$easy '{ print EASY }'

在这里插入图片描述

这里我们了解了awk脚本的基本内容,由于awk也可以被称之为脚本语言,有兴趣的童鞋可以自行查找更多的资料学习,这里我们就简单的介绍部分内容!awk命令的学习就到这里了!!

你可能感兴趣的:(linux基础命令系列)