00:00
大家好,欢迎来到这里啊,接下来呢,我们来学习一下关于aw k啊aw k这个文本处理。嗯,平时呢,我在做一些工作的时候啊,比如说想看一下目录下面有多少个文件夹,过滤一些数据的候,是吧,我经常会用aw k这样去处理啊,那么aw k呢,其实也算是一门简单的语言啊。所说它的这个用法呢,是非常非常多啊,非常强,功能是非常强大的啊,那么我们可以打开aw k,然后杠H,大家可以看一下它的这个过程啊,你看这里面有gaw k是吧?有AK是吧?你看这里面其实推荐大家使用的是gaw k看了吧,啊,它是一个比较新的一个版本啊,那一般我习惯了啊,习惯了就用的是这个awk,你看这里面有个格式对不对。呃,Awk后面跟的就是我们的一些选项啊,然后杠F指定了我们的一些文件是吧?啊等等等等,那它的用法呢有很多,今天呢,我们就讲几个经常会用到的几个方法。
01:02
OK,你看这里面有gaw k是吧。嗯。不行啊,这个gaw k还是用不了对吧?啊,这个没关系啊,今天我们就说几个那个aw k常用的一些实例啊,Aw k呢,大家认为这条命令啊,它就是来做文本分析的啊,文本处理它相当于我们之前学所学的这个grape对吧?Gra过滤一些文本啊,而awk,呢,比它更加灵活,更加强大,Sad呢,是我们后边要说的这个流编辑器啊,那么它,呃,Awk相对来说也比它有更大的一个优势啊,尤其是在做对数据做一些报告的时候,它的功能呢?还是挺强大的。那么它的原理是怎样的呢?就是aw k,就是把文件逐行的去什么呀读入,然后以空格作为默认的分隔符,然后将每行进行切片。
02:01
切开的部分再进行各种分析和处理啊,那么今天呢,我们就来说一些简单的实例啊,先来看一下aw k怎么用。呃,一般aw可处理,我们得先有数据是吧?我举个例子,同学们啊,我们来看一下IP地址好不好,好if config呢,是来查看我当前所有的信息是吧?比如说我想获取一下啊网卡的名称。这样吧,我们为了简单一点啊,我们可以选一啊股。If confi ens33,这样获取的是单独的一块网卡,对不对?好,同学们,现在我想获取网卡的名称,这时候怎么获取呢?OK,这时候我就可以使用aw k指令了,大家看看这个数据它有什么格式呢?我们先找一个简单点的吧,这个可能大家理解起来还有点难是吧,比如说这样啊,我我就想获取这一块数据对吧,或者是这一块数据,以及后面这一块数据对不对,好那怎么获取。啊,我们用的是什么指标。
03:00
嗯,是aw k是吧,那么首先我们是要是不是先CP一下对吧?CENS33呀。这样出现了这样的一行数据,对不对,好,那么然后我们接下来是不是开始处理啊好aw k。OK aw k呢,杠F呢是指定它的这个分隔符啊,默认情况下它就是空格,所以我们就不需要指定了,你看我们以空格来分割,这是第一个部分。第二个部分一直到这儿对吧,然后第三个部分,第四个部分对不对,那么我们就可以在这里面去输出它的格式呢,是这样去写的,两个单引号,然后里面加上两个方括号啊,然后print是打印记入空格啊,你要打印第几个,它是在第几部分,同学们在第一部分是吧?那么这里面我们要写的就是到一。那这时候我们这个数据就出来了。OK,这个数据就出来了。那么如果你想获取精确的是吧,那我们可以给他指定一个其他的符号啊,我们是不是可以通过杠F或指定一个冒号来做分割呀,对吧?这样的话,你看同学们如果以冒号做分割,第一个部分就在这里啊,那第二个部分就是后面这一堆对不对?那么如果你想把第一个部分和第二部分都输出,那么你后面逗号到了二。
04:18
是吧,这样就把我们原始的数据就给输出出来了,而且相当于这样的做法,相当于就把冒号给去掉了,OK,相当于给移除了冒号。啊,重新以空格的方式去展示出来了啊,然后这时候有的时候同学说了啊,我不想用空格,我想用逗号是吧,然后这时候我可以加一个选项。Dollar。我看见到处都。Ofs是吧?Ofs等于。逗号。OK,好。哎,错了,我跟你啊。
05:02
我玩三四个哦,烦死了。嗯。好,这里面有一个语法的错误是吧,好,我们来看一下这个aw k它的一个,我们先把前面这块先给大家,先给大家整理一下啊,这是常的一种格式啊,长的一种文本处理的格式。一般我就会让他去过滤这些体系啊,通过A指定一个符号去处理这些文本。嗯,来看一下这里面有一些参数啊,看这里面有写出来吗?这里面还没写出来,刚才。这里面还没写太多对吧。啊。OK,类似于这种这种语法,我们可以通过杠V去指定它的变量,OK,你像刚开始我们在呃,在打印的时候是吧,你像这条语句啊,同学们你看这里面是把结果按照逗号给你分割开了。
06:11
OK,那么这时候我们就需要用到这个ofs这个变量了啊,所以说整个它这个。过程啊,是这样的一个命令格式,格式是这样的。我们来看一下。这里面刚开始你看它是以冒号是吧,这里面我们相当于以冒号做分割,最后把DO1和do结果拿出来了,它默认是按空格来分割的最后的结果对吧?然后我们对最后的结果又做了一系列的处理,我们让它以逗号来分割,我们这时候可以通过杠V呢去指定它的变量啊,Ofs呢就是用来指定。分隔符,OK?直接分割服了。好吧,啊,有的时候我想获取最后一个怎么办呢?最后一个参数啊。嗯,你像这种情况啊,我现在是获取的是DOLLAR1到二是吧,我想获取最后一个啊,那么就是do nf。
07:07
OK到NF呢,指的就是我们要获取的是最后一个参数。啊,你的结果里面的最后一个参数。好,然后这个是我们对结果啊,对输出结果进行处理,指定分割符OPS。OFOF。这是这样的一个过程啊,Aw k就是这样去处理一些数据的啊,比如现在我们举一个实例啊,比如说我们要拿IP的地址是吧,获取IP地址OK,像刚才我们获取的是网卡名称,我们会获取的是吧?我们来获取一下IP地址啊。
08:01
比如说EI33网卡的IP啊,然后我们通过。啊。啊,你通过aw k也行啊,通过这个也行。OK啊,那么这时候我们要想获取IP的话,我们就可以去。呃,通过。呃,If config是吧,获取它这个。啊,网卡的信息啊,先获取整个网卡的信息,然后我们来通过这个。前两行嘛,对吧。是确定好是吧。然后我们就可以在这里面去取它的IP地址是吧,然后你可以你可以这样啊,也可以通过grape一下啊,Grape一下,然后这一行它有一个特殊啊,就是有一个。It是吧,It啊,那这时候又出现了两行it对不对,那么一般它是跟网卡啊,就跟子网掩码啊ne ma。在一块了对不对,然后这时候你就过滤这一行就可以了啊,找找准这一行的关键字啊,不要冲突就可以了。
09:06
找准这行的关键字对吧,然后我们就通过aw k啊,然后去取啊,啊,你看这个是不是非常简单。现在按照我们刚才那个逻辑的话,直接就是。这是第一个参数,第二个参数对吧,到那。八二。这样的话的网卡的IP是不是拿到了。然后你想获取IP加那个掩码啊,加那个网,加那个广播地址对不对,那么这时候你可以获取掩码,掩码是几。是1234页24对不对,那么后面的这个广播地址是六对不对,OK,那我就到这里,这样的话信息都获取到了啊,但是它默认是按照这个空格来区分的,有的时候我们还想进一步的处理对不对啊,那么在前面给它加上一个杠V啊,指定我们的变量啊,Ofs等于。
10:00
逗号啊,比如说我们按逗号来分割,那这时候是不是出现了我们的信息了,对吧?那然后我们是不是还可以通过负循环的方式去把所有网卡的这些信息都给拿到了。对吧,完全可以啊,完全可以,所以说这是一种我们处理。处理这种信息的一种方式啊,处理这个IP地址啊,获取IP地址的方式,呃,获取的方式有很多种了啊,很多种了。OK,很多种啊,但都是需要你这样去过滤的,过滤完之后,然后这样去拿到就可以。好,这是aw k基本的一些内容啊。啊,这个是使用了grape是吧,那也可以说是。啊,我们也可以去直接我试一下啊,我们可以直接通过aw k去实现啊。那刚才我们用GR去过滤了是吧,Aw k可以去指定我们的,呃,去指定我们的关键字是吧,比如说。
11:05
T是吧,然后。看着啊。嗯,这样不行啊,这样是一个文件是吧。啊,如果是文件里边内容,我们可以通过这种方式去过滤啊。嗯,杠F5。啊,不用加F。嗯,干过。好吃。啊,不行啊。这样是不行的啊,那我还得借助GR去过滤一下啊,Aw k也可以对文件里边内容进行过滤啊,比如说我们去过滤一下。啊,我们我们知道ETC的password是吧,Pad-十这里面存储了所有的用户对吧,那么我们可以选aw k啊,然后当F冒号对吧,然后过滤关键字啊,比如说如。
12:09
然后ETC的pass。宽一下,如此。的啊。呃,这个没有如特曼啊,有D。感觉是正则的一个问题啊,这里面可以支持正则表达式,我们。OK,这样的话是不是把带如特的行数全部给你过滤出来了,对吧?嗯,然后这样的话,你要想获取如特的一个并线的BI对吧,那么这时候你就可以这样去测试了啊。可以加个如春冒号啊。啊,他也有冒号对吧。你加个X呢,对吧,这就是个特性啊,这个正则啊,正则表达式可以这样去匹配,这也算是它的一个高级用法,呃,你像刚才这种情况下的ES33。
13:10
这时候应该也是可以通过aw k,然后我们去给它加个正则对吧,正则就是in net空格对吧,Int空格。然后我们来过滤,哎,这一行就出来了,对吧,然后接下来我们再呃,再通过这个分割的方式啊去呃,Print一下,到一。啊,不行,这样不行啊。这样的话是先对他做了一个什么,做了一个处理啊,你接下来你还要去给他。在在aw k一下是吧。总之就是告诉大家这个ARK也可以使用政策啊,比如说我们在a print。Dollar。一对吧。啊,到了二这样的话,IP也就出来了啊,这这个跟刚才我们那group很类似啊,Gra很类似。
14:05
呃,那么还有一些其他的方式,我们可不可以把它整合成一条指令是吧,也是可以的啊,也是可以的,我们可以直接其实就可以直接过滤这个IP了,对吧,把这IP取出来也行啊。统制制都是一些那个aw k的一些啊,常用的一些方式啊。好,给大家补充到这里啊。对吧,直接用awk这样去分析也行啊,你比如说我想获取一下这个系统里边有说有多少个用户是吧,怎么去过。怎么去获取呢?其实我们要做的还是啊,这个ETCLD这个文件是吧,那接下来你要怎么做呢,同学们。我们要怎么获取啊,我们其实这里面是所有的用户是吧,第一行是用户名嘛,是吧,那我就可以通过aw k去分割嘛,杠F冒号对吧,然后我们输出它的DO1。
15:03
这个是最简单的了是吧,ETC的。就是所有用户啊,怎么来统计用户数量啊,用WCOKWC是这样统计的啊,WC-L是干嘛。是按行来统计,OKWC-L是按行来统计,比如说现在一共有五十五行。明白吧,55个用户啊,所以说这系统里面所有的用户的信息。啊,这个是统计。统计系统中。用户数。OK,系统中用复数啊,WC-L这套指令也了解一下。嗯,然后其他的aw k的使用场景啊,基本上也就这些啊,常用的一些。后面。嗯,后面也就是对文本的一些处理,OK,好,那么aw k的一些简单的一些使用技巧啊,我们今天就先说到这里。
16:04
好吧,这是今天说到这里啊,这是常的一些技巧。
我来说两句