00:00
大家好。欢迎大家继续收看上硅谷的云计算课程,我是沈乔老师,那上节课我们讲完了普F对吧,那因为是什么aw k k的格式当中,它的主要动作就是控制来进行输出了,那所以我们提前讲一下,上节课呢,我们这个想要提取这个文件行这个程序,这个这个程序我是想把这个给这个排除在外,对吧,结果呢,没成功,原因呢,你看。我们之前是不是先用这个gra管道符,然后再把它输出,看输了是不是就不合理啊各位,这是这是普普F的作用。它呢,不识别管道符,直接来输出,那这个东西要想用啊,它是格式这样的文档上写啊,脑子一晕,Aw纯F真的这东西呃,只在aw k当中,我们可能才建议大家这个使用啊,所以脑子云自己也忘了,那这个呢,它如果需要调用这个管道符的命令,是需要把这个后面先在这执行,而不能管道符直接传给它,否则print f是没法识别了,如果要想重这个取消内部行,在这里执行管道服的内容啊啊行,那也就说如果要想这样执行我怎么办?
01:12
找到这个在这里加管道杠V取反啊,这个内部之外的包含内部呢给去掉,这个时候就可以正常了,OK,好,那知道了aw k,好,知道了图塔F,我们来看看aw k的基本的格式。Aw k比较复杂,它的基本格式是这样,看清楚啊,这也是单引号。哎,我们前面说啊,Print输出的时候,这个格式是不是也得是单引号对吧,那这个就麻烦了,这也是单引号。Print式动作啊,在这里是print式动作,如果它也是单引号,是不是就搞混了?所以在aw k当中,你的print如果要想输出它的格式是用双引号的,如果你需要用引号来括这个符号,它是用双引号括起来,这是被迫的,在命令行手工敲的时候一定要用单引号,OK,那在aw k当中,因为它的动作条件是要用单引号括起来,这括起来。
02:13
所以。同塔F里面如果要用引号,记着它变成双引号,OK,其次啊。它的格式是这样的。它允许你判断多个条件。那么如果条件一成立,则执行动作一,如果条件二成立,则执行动作二,那条件可以是什么?可以是这样一些东西,我下面还写了个表格,我们后面讲,比如说什么大于十,大于等于,字符串是否包含?字符串是否不包含,我们后面再讲,举例子来说,那动作呢?那么最常见的动作就是print f格式化输出。那当然也可以做循环,比如说写个循环,写个条件,这个if判断都是可以的,那这个格式看起来很别扭啊,也别着急,我们一点一点来,我们先看它最基本的作用,就是输出链吧,我们说了aw k最大的作用是不是就是输出积极列。
03:10
对吧,那它的格式是这样看呢。没有条件。我这里看大括号里面是动作,大括号外面是不是条件,没有条件就代表每一行都处理,哎,我student里面看啊,我student里面,我现在本身默认是有四列。如果我写条件,比如说成绩大于90,那这个是不是就是条件了,那现在我没写条件,那就证明每一行我都处理,处理啥看打印第二列和第六列。这个print f我们说了是不是输出在这里,这是位置参数变量到那就代表第二列,到了六就代表第六列,然后退格符是不是支持退格,哎,中间是不是用这个贴不见啊制制表符啊,用制表符是不是来分开,然后换行。OK,那小心啊各位。
04:01
这个东西里边,这其实说白了这句话就是打印他的第二列和第六列那。我们试一下,先先试一下单引号括起来,把它的这个执行的动作条件都要用单引号括起来,然后呢,我们现在没有条件,只有动作大括号括起来,Print f撇RTF,然后呢,我们打印第二列这个名字中间要隔开,要不然它中间是不是会这个把它连在一起啊和第六列。平均成绩对吧,然后要加换行。换行。诶,然后呢,处理的是这个文件,好这就可以正确打印了,看到了那小心啊aw k啊,除了可以支持print,还支持print f还支持print,表格上现在看好像是一样的,区别在哪?看看print,如果用print可以不写这个换行符。它会自动帮你画行,也可以正确正确输出,这是print,而如果print f呢?看吧,我们print f如果不写换行符,你看呢?
05:08
它就会把它说成输成一坨,看到吧,也就是说print f后面必须手工加换行符,而print会自动换行,就这个区别,但是print命令在Linux当中是无法执行的,所以我们讲的时候是拿这个作作为例子来讲,对吧?好,这是它的最基本的作用,就是达型晋级列。那为啥要这么处理啊,原因啊,它我们前面说了DF是不是没办法按空格来分,对吧,我们要提取这第六列是不是处理不了,那这个时候我们就要干嘛。Aw k,这是它的最常见的这个作用就是提取第几列到,然后我们提取什么,呃,我们提取第四列这个平均成绩对吧,那我们就提取高斯,那这样的话,它也我我用的是print。那是不是就不需要再加换行符了,对吧?回车我就能把第四列提取出来啊不对,第五列啊,第五列我提的是这个。
06:03
百分比对吧?哎,对了,那我现在说啊。我现在假设我要判断的是根分区的百分比有没有超过90%或者80%。那我这里是不是提取出来的是整个第四列对吧?哎,首先说啊,Cutt队列是没办法按空格符来做,只有aw k是不是可以正确提取对吧?那如果是用空格来分割的,就必须用aw k,但是啊,我现在的问题在于。我只要跟分权。而且我只要这个数字,我只有把把这个12存到变量里,变量A里,我是不是才能判断它是不是大于等于了百分之这个80。你说80%他怎么判断,所以啊,我这里干嘛,我要做的是是提取这个数字12,那怎么办?那我们首先要做的是什么,我是不是先要把别的干扰项去掉,我是不是要提取的是DV下的SD3。
07:00
我是不是要处理根分区?第下的SDA3,我是不是要先提取这一行?对吧,各位,那我为啥不提取根呢?哎,这是个斜杠,每一个分区都有这个斜杠啊,提个斜杠有啥用对不对,那所以我是不是只能提取跟分区,那这样的话学员说了,那是不是说我每个系统都得单独看一下我的跟分区是哪是的。这个就没办法了,你写的时候只针对这一个系统,OK,当然可以更麻烦,可以用更复杂的,比如说我先确定我先写一个程序条本,确定跟分区是SD,再把这个脚本写在这里,这样的话就可以全自动了,但是我们现在就先基本的我就提跟分区的12%可以啊,这样的话我是不是就找到了跟分区。对吧,然后呢,我是不是在里面干嘛,提取什么秦取地五列是吧。Print到五。
08:00
好,12%是不是就提出来了,但是不行啊各位12%不行啊,我要的数是不是就是在这个数,把这个数是不是附在变量当中,然后是不是来进行处理,你这个12%是咋处理啊,那咋办?各位。简单拿百分号作为分隔符再提一遍,这个时候就不不用这个aw k了,简单什么cut cut就可以了,Cut,然后呢,杠D分割符是百分号。然后提取第一列,看分格分一分,前面是不是第一列,后面的空是不是就是第二列,那这里我们就提取第一列好了,这个数字就提出来了。哎,然后呢,把这个东西命令是不是可以附在变量里,然后是不是可以处理这个变量,哎,我们后边会把这个脚本写完,就是非常简单,一个脚本我让他写好,让他自动运行,每一个礼拜运行一次,然后就检测什么你的这个跟分区占比这个百分比就没超过80%,超过了就报警,没超过就下次下个礼拜再检测。
09:04
诶,所以我说各位。我们运维工程师写的脚本,绝大多数都是这样的脚本,就是这样实际用的脚本。但是呢,它考验的不是你对这个程序什么if啊,For啊,有多循环函这个函数啊,有多熟悉,它考验的不是这个,它考验的是你对Linux比较熟悉,但是后面这些还是编程的东西,但是前面这个你要得知道用DF是不是才能读取出来这个硬盘的占有率,然后是不是才能把它截取出来进行处理。对吧,好各位,这就是一个典型的实例啊,Aw k的作用,哎,其实aw k最基本的作用,也是你们最常用的作用就是截取力。它会弥补cut做不了的东西,因为cutt只能指定有确切的分隔符,或者用table键制表符才行。如果是用空格作为分隔符,Cut就处理不了,那这个时候就必须用aw k来处理好。
10:01
各位记得这个事儿,我现在把这个占比提出来,那为啥不写程序,你们现在还没有学if判断语句都还没讲,等讲完这个我就会把这个程序写完,OK好,各位,那aw k的基本用法我们就知道,就先了解基本用法,我们后面再说它更复杂的详细部分,OK好了,那这节课呢,就先这样,我们下节课再见。
我来说两句