---===AWK学习之旅===---
十三个常用命令行处理
 
[root@monitor awkdir]# cat emp.txt
Beth 4.00 0
Dan 3.75 0
Kathy 4.00 10
Mark 5.00 20
Mary 5.50 22
Susie 4.25 18
 
1.不打印最后一列
|awk 'BEGIN{FS="-";OFS="-"} NF--''
 
2.计数分组
|awk 'BEGIN{FS="-";OFS="-"} NF--'|awk '{a[$1]+=1;}END{for(i in a){print a[i]" " i;}}'
 
AWK知识:
 
3.NF:字段数量,是个内置变量
NR:行号
 
4.printf : 格式
awk '{printf("total pay for %s is $%.2f\n",$1,$2*$3)}' emp.txt
 
5.# 左对齐,占8个字符;小数点后2位,总共占6位。例如:100.02 
awk '{printf("%-8s $%6.2f\n",$1,$2*$3)}' emp.txt
 
6.打印标题:
awk 'BEGIN{print "NAME RATE HOURS"; print ""} {print}' emp.txt
 
统计某字段符合条件的 有多少行:
awk '$3 > 15 {emp = emp + 1} END {print emp} emp.txt
 
7.统计行数:NR
 
8.按某列求平均值:
awk '{ pay = pay + $2 * $3 } END {print NR,"employees" ;print "total pay is",pay}' emp.txt
 
9.求某列的最大值:
wk '$3 > maxrate {maxrate = $3; maxemp = $1} END {print "highest hourly rate:",maxrate,"for",maxemp}' emp.txt
 
10.打印最后一行:
[root@monitor awkdir]# awk '{last = $0} END {print last}' emp.txt
Susie 4.25 18     
 
11.分割某一列:
awk '{split($2,array,".");$2=array[1];print}' test.txt
 
内置函数:length
11.统计字段字符长度:
awk '{print $1,length($1)}' emp.txt
2017-07-25 11:16:10.220 queries client
2017-07-25 11:16:10 queries client
 
12.列转换成行,指定分隔符分割
awk '{names = names $1 ","}END{print names}' a.txt
等同于:cat a.txt |tr '\n' ',' 
[root@monitor awkdir]# awk '{names = names $1 "-"} END {print names}' emp.txt
Beth-Dan-Kathy-Mark-Mary-Susie-
 
13.统计行数,单词,字符数
行数:NR
打印每行的行号:
awk '{print NR}' emp.txt
 
打印总的行数:也就是最后一行行号
awk 'END{print NR}' emp.txt
 
单词:每个域分割就算一个单词,也就是每行的列数
awk '{nw = nw + NF}END{print nw}' emp.txt
 
字符数:
解析:awk 行级处理。每次处理,$0就代表一行内容。 
 [root@monitor awkdir]# awk '{print length($0)}' emp.txt
11
10
13
12
12
13
统计总数:每行的值,一次累加。
[root@monitor awkdir]# awk '{nc = nc + length($0)}END{print nc}' emp.txt
71

awk十三问-【AWK学习之旅】的更多相关文章

  1. awk二十问-【AWK学习之旅】

    ---===AWK学习之旅===--- 一行命令: 1.打印输入每行的字段总数: 最后一行的字段总数:END{print NF} 每行都显示字段总数: {print NF}   2.打印指定行: aw ...

  2. awk分割列-【AWK学习之旅】

    ---===AWK学习之旅===--- awk 内置分割函数:split,将列按照指定分割符,分割成数组 用法:split(str1,array,"分隔符") 文件内容: [roo ...

  3. CU社区shell板块awk十三问整理

    CU社区shell板块awk十三问整理 一.RS="" 当 RS="" 时,会将\n强制加入到FS变量中,因为RS为空时,是将连续多空行作为分隔符,近似于\n\ ...

  4. 异曲同工的AWK语句,学习

    输出每个IP的网络连接数,是作很多事情的第一步: netstat -nat | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n ne ...

  5. AWK的介绍学习

    第一节.awk的工作流程和基本用法 1.awk介绍 awk是一种报表生成器,就是对文件进行格式化处理的,这里的格式化不是文件系统的格式化,而是对文件内容进行各种"排版",进而格式化 ...

  6. WCF学习之旅—第三个示例之四(三十)

           上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九)   ...

  7. Hadoop学习之旅二:HDFS

    本文基于Hadoop1.X 概述 分布式文件系统主要用来解决如下几个问题: 读写大文件 加速运算 对于某些体积巨大的文件,比如其大小超过了计算机文件系统所能存放的最大限制或者是其大小甚至超过了计算机整 ...

  8. WCF学习之旅—第三个示例之二(二十八)

    上接WCF学习之旅—第三个示例之一(二十七) 五.在项目BookMgr.Model创建实体类数据 第一步,安装Entity Framework 1)  使用NuGet下载最新版的Entity Fram ...

  9. WCF学习之旅—第三个示例之三(二十九)

    上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) 在上一篇文章中我们创建了实体对象与接口协定,在这一篇文章中我们来学习如何创建WCF的服务端代码.具体步骤见下面. ...

随机推荐

  1. Android ListView的监听事件

    Android开发时,最常用的控件之一就是ListView了,而使用ListView的同时,必然需要对它设置监听器,常用的监听器有这么几个1.OnItemClickListener 2.OnTouch ...

  2. tomcat中文配置

    tomcat传递中文乱码,修改server.xml文件 <Connector port=" protocol="HTTP/1.1" connectionTimeou ...

  3. angular的属性绑定

    1. 图片地址属性绑定 html文件 <img [src]="imgUrl"> ts文件 export class ProductComponent implement ...

  4. servlet容器与web容器的概念

    一般的说法是这样的,servlet容器的主要任务是管理servlet的生命周期.而web容器更准确的说应该叫web服务器,它是来管理和部署 web应用的.还有一种服务器叫做应用服务器,它的功能比web ...

  5. 状态维持在web层 每层都可以Cache

    API网关的开源解决方案那么多,为什么我们却还要选择自研? - SDK.CN - 中国领先的开发者服务平台 https://sdk.cn/news/8001 技术细节Microservice+SOA状 ...

  6. bootloader,kernel,initrc

    http://www.ibm.com/developerworks/cn/linux/l-k26initrd/index.html http://www.68idc.cn/help/server/li ...

  7. Cyclic Nacklace ---hdu3746(循环节,kmp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3746 给你一个字符串,让你在后面加尽量少的字符,使得这个字符串成为一个重复串. abca---添加bc ...

  8. 如何使文本溢出边界不换行强制在一行内显示?#test{width:150px;white-space:nowrap;}

    #test{width:150px;white-space:nowrap;}

  9. LInux中的物理内存管理

    2017-02-23 一.伙伴系统 LInux下用伙伴系统管理物理内存页,伙伴系统得益于其良好的算法,一定程度上可以避免外部碎片为何这么说?先回顾下Linux下虚拟地址空间的分布. 在X86架构下,系 ...

  10. 一条SQL引起的雪崩

    1.问题描述 MySQL服务器卡死,CPU飚到300%多,命令执行缓慢. 2.问题定位 踩了狗屎运,直接找到了问题缘由 发现了一条SQL写的模糊匹配,将%写在了关键字的前面,这样会造成查询不使用索引, ...