发表于: 2017-05-24 23:20:30

1 1165


今天完成的事情:

1:看了一天的网页,早上开始找,找了很多篇关于awk里方法的文章,都感觉说得要么不够清楚要么不够详细,下午才找到一个比较通俗易懂的个人网站

http://www.zsythink.net/archives/1336

然后跟着看跟着敲,基本上一天就过去了

2:简单理解cat命令



明天计划的事情:

回归任务,不能什么都想去了解透彻再去做,这样太耗时间了,查找任务需要的功能,现学现用,其他的东西等用到了再去学...

就当我寄存在网络上好了....这些知识都是我的!统统是我的!



遇到的问题:

1:感觉自己有点松鼠病,看到什么都想学了存起来,然而并不常翻笔记,和steam买游戏又不玩,买书不看是一样一样的.这毛病我想办法改改.

2:

查看这个文件里的数据,用awk输出demo1里的第一列,倒数第二列,倒数第一列的数据.然后成功输出,但是后面报了个错,我网上查了说的东西和我的例子不一样,不太明白.问了师兄,师兄说没碰到过,也不清楚

如果我不输这个-1的话就没报错,但是按道理说应该是没问题的,我想要的东西也显示出来了,搞不懂,师兄说不影响功能就跳过吧,我就记录一下


收获

1:

什么是负载均衡?
多台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器限制的情况.
即负载均衡的前提就是要有多台服务器才能实现

2:awk基础

awk默认以换行符为标记,识别每一行,遇到回车换行,就认为是当前行的结束,新的一行的开始,awk会按照用户指定的分隔符去分割当前行,如果没有去指定,就默认使用空格作为分隔符.

$0表示整行,$NF表示当前分隔行后的最后一列($0和$NF均为内置变量,无需手动设置)
假如一行文本被空格分成了7断,那么$NF的值就是$7,而$7代表当前行的第7个字段,即最后一列
那么每行的倒数第二列可以写为$(NF-1).
注意:$(NF-1)一定要带括号,如果写为$NF-1,会显示成最后一行的值-1.就与需求不符了

3:awk分隔符

awk分隔符默认是空格,但是这样描述不精确
分隔符分为两种,输入分隔符和输出分隔符
输入分隔符:field separator     简称为FS
默认是空白字符(即空格) awk默认以空白字符为分隔符对每一行进行分割
输出分隔符:output field separator 简称为OFS
awk将每行分割后,输出在屏幕上的时候,以什么字符作为分隔符,.awk默认的输出分隔符也是空格
实例:
输入分隔符:在awk逐行处理文本的时候,以输入分隔符为准,将文本切成多个片段,默认使用空格,但是如果一段文字中没有空格,我们可以指定以特定的文字或符号作为输入分割符,如:

创建一个demo2,指定输入-F+分隔符,于是awk将每一行都通过#号为我们分割了.
除了使用-F选项指定输入分隔符,还可以通过设置内部变量的方式,指定输入分隔符,awk的内置变量FS可以用于指定输入分隔符,但是在使用变量时,需要使用-v选项,用于指定对应的变量.如 -v FS='#'

其实-F选项和FS内置变量,目的都是设置指定的输入分隔符,达到的效果是相同的
输出分隔符:当awk为我们输出每一列的时候,会使用空格隔开一列,用的就是默认的输出分隔符
当我们要对处理完的文本进行输出的时候,以什么文本或符号作为分隔符.

同时指定输入分隔符和输出分隔符


4:awk内置变量NR,FNR

NR,NF分别表示第几行有几列

添加行号

合并多个文件

如果想分别处理多个文件,并对其分别计数的话,就用到FNR


返回列表 返回列表
评论

    分享到