00:00
好,接下来呢,我们说一下这个aw k啊,这个功能呢,非常强大啊,我们来看一下啊,一个强大的文本分析工具。把文件逐行的读入啊。以空格为默认分隔符,将每行进行切片,切开的部分再进行分析处理。其实他这个跟这个上面的一个卡是非常非常像的啊,一会儿你就能看到,呃,只不过呢,它在里面这个处理的形式上不太一样啊,或者这个有一些这个匹配的规则。我们上来看一下。怎么使用的?Aw k选项参数,那选项参数呢,这里面我也只给大家列出两个啊。啊,所有的这些参数都不止我列这些啊,这里面有很多很多这个参数,呃,如果你真的是未来真的就天天就写这个。我那一个cel类似一个。手册。非常非常。像这个好多这这个像aw k啊什么,其他这命令,每个命令后面都跟着十个到20个这个参数。
01:04
你这有必要记吗?没有必要啊,只有你真正的要写它的时候啊,你才能把这个手册拿过来,再踏踏实实翻一翻啊找。就OK了啊。这些呢,我跟你讲,这些都属于这个基本的。命令啊,就在你面试过程中应该就OK了,再就是你在开发过程中一些简单的啊。看得懂啊,如果稍微呢,他用的某一个参数我这里没写,那就查一下什么是表是吧。然后再不进,你是不是也可以百度一下。这个要学会学习啊。因为你就光讲他,我跟你说加两个月都不带重样的。但是没有意义啊。呃,NWK选项参数啊,选项参数呢,后面是跟着两个参数,一个是杠F,一个是杠V。这个很简单啊,它就是输入文件的拆分符啊,其实就是用什么来切,还记得这个卡用什么切吗?是不杠D啊,然后后面是跟着什么切啊杠D啊,别跟那混了,那个里面的的杠F是。
02:07
取哪一行对吧?啊取哪应该是列啊,人家说是列啊啊。那这个也是一样的啊,一样的是杠F去指定分隔符用什么线。那另一个呢,杠V啊。它是复制一个。用户定义的变量。比如说他杠V之后,它可以定义一个变量I等于一。那这个I等于一呢,在后面的一个运算过程当中,在这些运算过程当中就能对它进行一个使用。对某一列数据进行加一操作。或者简易操作等等。那这呢是定义一个变量。啊,方便后续的一个操作而已啊。好,那这两个参数非常简单,一个是分隔符,一个是变量。那好,那就相当于到这儿了。那这样的话呢,就是呃,PARTNER1。及action动作啊,前面这个呢,相当于是一个正则匹配。
03:01
正则表达式你们应该没学过吧?但是应该听说过是吧。没关系啊,它呢,就相当于。一个正的匹配啊。匹配到符合你这个正则要求的一个啊文件啊,这个病表达式呢,我这里有一份啊。我放在我刚放到这个里面啊,如果没放到这里面,在哪里面呢?在我的资料里面。扩展资料里面,这有一个正则表达式语法。这网上一搜一大堆哈啊一大堆,为什么当时没给你们讲呢?啊,因为在你们日日后的开发过程中,无外乎就这么几个邮箱的一个成本匹配。啊,邮箱啊,手机号对吧,啊,还有像这个身份证号。还有什么呢?还有像快递号,快递单号。等等,这些代号你去百度吧。一搜,一堆一堆的。超级多所说没有什么太多的意义啊,而且我们只是在里面简单的用一下。
04:05
好,那这个是正则匹配什么意思呢?你说匹配上你这个正则的表达式。之后那你执行什么操作。在我们这里面主要是打印啊。各种friend。交平台进行一个查看。啊,当然可以有其他操作啊。那前面匹配上这个条件之后执行它,匹配上这个条件之后执行它。感觉现在就是硬判断啊。等等啊,最后面这个是文件的名称,比如说你要处理的是哪一个文件名称。你稍微掐头剧本一下,这是掐头。都是正常的,Awk要处理这文件中间呢,有两大块儿,一个是选项参数,一个是这个政策匹配上要执行哪些事。啊,参数里面有两个,一个是杠F,一个杠V。一个指的是分隔符一个。定义的变量。这块这个动作这块呢。那就是说你这个帕一满足他了,那你就直接这个动作满。
05:02
这个那个。这两串。那下面呢,我们还是阿里实抄一下啊。感受一下。啊,数据准备,这个数据准备呢,是拷贝的是ETC下面有一个。我把它拷过来,作为呢,我们后面的分析的一个数据的输入。这里面你看我用的一个速度。为什么要输入呢?当前用户呢?我是爱硅谷,如果你是root,那就不需要输入了。直接就过来就把。拷贝这个文件到这儿,当结果。我们来执行一下。速度。好贝。CD原文件在什么位置?EDC。拷贝到哪?提示你输入密码对不对。你挨了这里面就出现一个。
06:02
Pass,但是呢,这里面他目前的所有者和所有者的主。改一下速度顺爱的微博。Pass。不这样就完了。就这么简单啊。把他搞定。搞定之后,我们查看一下这里面有哪些内容啊,看一下。这里面有入的。执行报号。报号。你看一下这个用冒号分割出几列啊,一列两列三列。四列、五列。系列啊啊,下面也一样啊,都是系列。好,那知道七列之后呢,下面我们来做。的事情啊。这里面第一个需求。搜索password已root关键字开头的。
07:05
并输出该行的。第七列。这个匹配上以这个文件root,关键是开头。其实这是一个。啊,正常匹配。的所有行,并输出该行的第七列。那第七列,那这里面是不是默认我是用的这个冒号去切的。默认这块啊,入它开头啊,以它开头所有行,然后呢,我用这个冒号去切,切完之后我获取到它的第七列。你把它数出来。就干这么一件事。那怎么办呢?来看。首先第一个我这个是aw k。呃,切是用什么切?
08:00
杠F。那下边的所有的操作都是对应的叫你看啊。都对了什么呢?匹配这个表达式执行后面的操作,匹配这个表达式执行这个操作,那现在要求匹配的是不是。第一行行首为root了。这个正则呢,其实是。啊,这个你要是不懂,你稍微有个印象就行啊。这表示开头结尾知道什么。有人说那这也是他开头,然后之后后面跟着的就是root,写正格的开头是他。结尾是刀。啊。Root。监视他啊,冒号引号进来。进来之后匹配这个表达式。三角。它开头可以乘车,那这乘车呢,要求是root。
09:05
那开完头之后,后面干什么呢?打印。第系列是吧。那第七列怎么取呢?那之后是哪一个文件呢?Pass。稍微回顾一下吧。啊,这里面首先是用它去切,那切的谁呢。切的就是上面这个。谢谢他。切完之后取出第七列啊。那第七列这里面就不像那个里面是不是就是杠F7啊,那这个呢是七。
10:03
相当于第七个这个参数吧。可以这么理解。那输出这个七的前提条件什么呢?这一行必须是以入。那前面那个正则能匹配的东西很多很多。所以说呢,Aw k啊。这操作这个文件,那中间呢,是用它这些。那些?中间那这个是切的谁呢?是以入开头的好。切完之后把第七个数出来。好,那下面我们再来。下面又来一个搜索文件,已入文件开头的所有,并输出该行的第一列和第七列中间。刚才这个是输出的,是入开头的所有的行。那现在呢,是这行啊,并且是第七列哈,那这里面是第一列和第七列,而且要求输出的时候以逗号。
11:11
DO1和DO7。中间是逗号对吧。来吧。DO1和DO7,那对不对呢。好,那再往下看一下这个第三个。只显示ETC pass的第一列,第七列以逗号分格,且在所有行前面添加,优在最后一列添加。
12:04
那你相当于在前面加上一个表头对吧?啊有点。然后呢,在末尾呢,再来一个总结啊。说明一下,强调一下重点。对吧。那这怎么实现?那好,Saw k,现在我们还是按这个杠F冒号切。那下面开始处理这个相应的条件。他在所有行前面添加有者,那这里面有个关键字叫。Begin。啊,也在开头。可以加DK。这末尾大家能想到了吧?也就说正常,他的声音什么呢,Begin。要在你说。在你所有的文件开头加上这么一个东西。
13:02
然后之后中间呢,就是还是以相应的内容啊,在末尾呢,是一个。收尾,然后。两个关键字,仅此而已。我们来看吧,比如说begin的时候干什么呢?依然是打印。只要是打印那就是。看好啊这几个哈,我先是写的这两个对吧?啊写这两个在这里面执行相关这个操作,操作呢,先写的是begin。那是不是下边这个是相当于那第一个条件呢,第一个政策匹配上了,只要他开始就行了。开始之后在这里干什么呢?这个添加。然后。添加他吗?啊没有什么其他的,那之后再来。中间我是不是还是要打印第一列和第七列啊。
14:02
第一列和第七列,那第一列和第七列。那就简单了,那这一块。第一列属于。那中间是逗号再来。那后面是。这就相当于正常的,如果不加前面这个,那就把第一列和第七列是不是打印出来了。好,那再来。注意啊,我是在括号后面。分好这个这是正则条件,这是要执行的内容啊。然后这个呢,中间这个我没有这个执行条件,所有的内容全都执行。再做。按了之后干什么事呢?继续打印。
15:00
添加什么呢?大哥。然后。是吧?那操作的是哪一个文件呢。执行完了,那对不对呢?来看看这个行头。在哎生口添加比跟这个对吧,那他看到末尾。这是全文的重点,对吧。是不是在这了,那中间这一块就是它的第一列和第七。那是不是呢?我们校验一个root和。对吧,哎,这就实现了这个功能啊,这里面只是来一个掐头和去尾。
16:01
那前头呢,你可以用begin,末尾呢可以用啊。非常简单啊。看下面再来一个。这是什么呢?将pass文件中用户ID增加数值。那他的这个用户ID是哪一列呢?我们来看一下。看一下这里面有一个。第三类吧,啊零一。对吧。六能看到吧,这是不是相当于是第三类了。我就通通将第三列的值。三加一。来吧。Aw k按什么切?这个上来是不是直接可以写。刚拿先接下来呢,哎,这里面要增加一个数值,需要定义一个变量。
17:07
定个什么变量呢?I等于。以备后面使用。这么简单,所有值都加一吗?那我就定一个变量I。然后之后下面是。我要进行打印。为什么呢?Friend。第三列吧。到了三。所有的第三列要干什么呢?加上。到了,哎。是这样吗?试一下啊,先试。80。
18:03
怎么不对啊?是不是没变呢?是不是还是从零开始?干掉。这里面啊,这地方稍微有点区别,它直接把这个I啊放到这了,这个就不是,呃,有点特殊啊,那特殊的也要特殊处理,直接把这个变量I放,这并不是这个到I啊到I呢,其实那里面他认为没有值。他用的是这个I等于一。OK吧,啊,这个要特殊记一下,比如说杠F17,杠V是第一个变量之后,后面这就是一个条件匹配啊,现在前面没有什么条件,我就直接打印。那打印的时候呢,要注意它要求是第三列的值,所有的值都加一加。OK,那这是这个。那下面还有这个aw k,要说复杂呢啊,还有。
19:01
这里面呢,它还有系统给你默认提供了几个内置的变量。方便你后面的一个使用。第一个呢,就是这个范。文件的。直接可以打印,它就能把当前这个文件名称打印出来。另一个呢是这个NR表示的是已读的记录的数。比如说其实就是你看啊,这里面有一行一行的内容。那读到哪行,他往下走读到这行,那这行是一,读到这行二,再读一行三,那就是。这个意思啊。那下边这还有。浏览记录的域的个数。它就是切割后里到底有几个裂?看这里面切割后。刚才那有七列对吧,对。七个。就是第几列,那就是说告诉你,哎,这是有七列是吧,那这个NF呢,就是七。表示系列的意思,那刚才这个NR呢,表示从上到下的123这个行号的问题。
20:00
那这个file name呢,表示你处理的是哪一个文件是。处理的这个文件。这是系统认为这个你们会经常使用的,所以说。那我们直接就打印一下就行了啊打印。直接看aw k-F到后面直接打印。直接打他打印它,打印它。好了,我们来试一下。Aw。杠大F m2分。分完之后呢,里面是条件。一定是大括号里面啊,我们打一场。呃,第一个是内部是吧。在哪?可以组合一下啊。然后后面是NR表示行号啊,再来呢是。也是列的号。处理哪个文件呢?
21:03
切割打印名字。在一起了是吧。中间这样吧。这样啊,加上一个。这个清楚一点是吧,对不对,当前操作的文件是pass的,然后接下来呢,他读的好你看。行行往下读啊。在升价啊。然后之后呢,是多少列呢。切完之后七点啊。是这个意思啊,这个是系统默认给你提供的啊,这么。个关键的。那下面来一个那个刺激一点吧,之前也切过这个。那个。仍然是获取当前它的IP地址。
22:02
那这回呢,要求采用的是aw k。之前我们用的是这个卡。现在这个能不能用呢。一天。那下面我们是不是还要切啊,在他基础上。一个int net。到这之后,现在我们要求用a wp来写。Aw k。用什么线?冒号是吧,杠大F。啊,这个你看贴上都没事啊,贴上都一样的贴啊,当然你空一下也行。那切完之后,我要取的是第几列?是不是还是第二列啊,那这时候怎么办?
23:03
取出第二列,那你是不是打印第二列啊。第二季P到了。那是不是就到这儿了?到这儿之后再切。这什么切?空格A,大杠大F。空格啊。空格切完之后取第几个?不到。跟上面那个cut是不是类似啊,其实一样,想想这个我们当中是不是就用了一个更大F,然后打印的。在那个里面处理它的时候,是不是一个是杠D,一个是杠F啊。一个控制什么?切一个社区。一列是吧,一样,这里面也是它是控制切,你后面这个是控制取哪一列。仅此而已啊。好,那下面。
24:01
还有一道,还有一道是面试题啊。这个呢,其实是正则表达式。没有学位政策说一下。在呢是查询中空行所在的。那这里面就要求什么条件叫空行。对吧,啊,这个空行怎么判断。其实它是一个正则。那就是aw k。正德。这个他开头他结尾,中间是不是没有任何内容。哎,没有内容,那就。任何内容都没有。语法呢,这里面有一个他有一个他。它这表示什么呢?匹配输入字符串。开始的位置。下面这个呢,是匹配输入字符串结尾的位置。
25:03
啊,一个是开头一个结尾,那么开头和结尾当中都没有任何的值。那打印这个工行的行号呢。就是系统给你提供的,嗯。来来我们操作一下啊。打开。OK。然后呢,匹配条件。匹配条件我们是。他开头。到结尾啊。没有任何内容,那没有任何内容之后,后面我们要求这个打印。Friend啊。然后后面是pass。啊,是吧。
26:03
那这个也能证明侧面证明pass里面是没有啊。那这个里面有没有空劳呢?来看一下。这个空行啊,那第几行呢,12345。对吧,啊,12345啊,这就OK了。这是aw k的一个。这道是一道面试题啊。
我来说两句