---===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. WCF入门(十)——服务对象模型

    当发生一次WCF请求-响应操作时,会经过如下几个步骤 WCF Client想WCF Server发送一个服务请求 WCF Server创建WCF服务对象 WCF Server调用WCF服务对象接口,将 ...

  2. 如何让listview滚动到底部

    方法一: // msgListView是ListView控件 // adapter是ListView绑定的Adapter,如果不方便直接使用,也可以通过ListView的getAdapter()方法获 ...

  3. springmvc常用注解标签详解(转载)

    1.@Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ...

  4. 170417、Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)

    前言:互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服 ...

  5. 转载hiberinate的懒加载

    Hibernate的强大之处之一是懒加载功能,可以有效的降低数据库访问次数和内存使用量.但用的不好就会出现org.hibernate.LazyInitializationException. 这个异常 ...

  6. HDU_5514_Frogs

    Frogs Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

  7. HDU3658—How many words

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3658 题目意思: 题目的意思是在52个英文字母里面选择m个字母组成一个字符串,满足以下两个条件.第一是 ...

  8. iOS如何让主界面不显示NavigationBar

    这个问题曾经困扰过我.现在我给出正解.- (void)viewWillAppear:(BOOL)animated {    [super viewWillAppear:animated]; [self ...

  9. Android 判断当前thread 是否是UI thread

    在Android 中判断当前的Thread是否是UI Thread 的方法: 1. if (Looper.myLooper() == Looper.getMainLooper()) { // Curr ...

  10. SpringCloud 进阶之Eureka(服务注册和发现)

    1. Eureka 服务注册与发现 Eureka 是一个基于REST的服务,用于服务的的注册与发现; Eureka采用C-S的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册 ...