文档章节

awk处理文本(1)

lucifercn
 lucifercn
发布于 2014/07/04 14:03
字数 281
阅读 91
收藏 8
1. awk关联数组,捕捉长度和域值数目不满足要求的数组

1.awk =>
#!/usr/bin/awk 
length($1) > 2 {e++; print "long name in line", NR}
NF != 1 {e++; print "bad name count in line", NR}
END {if (e > 0) print "total errors: ", e}

# cat 1 =>
223  xiaobao
32 caoqing
42
52
2245
2

# awk -f 1.awk 1 => 
long name in line 1
bad name count in line 1
bad name count in line 2
long name in line 5
total errors:  4

2. 给定n个名字的文件,生成全部的n*n个名字

2.awk =>
#!/usr/bin/awk
{ name[$1] = 1 }
END { for (i in name)
        for(j in name)
          {print i, j};
}

# cat 2 =>
huanhuan
xiaobao
caoqing
grafield

# awk -f 2.awk 2 =>
grafield grafield
grafield huanhuan
grafield caoqing
grafield xiaobao
huanhuan grafield
huanhuan huanhuan
huanhuan caoqing
huanhuan xiaobao
caoqing grafield
caoqing huanhuan
caoqing caoqing
caoqing xiaobao
xiaobao grafield
xiaobao huanhuan
xiaobao caoqing
xiaobao xiaobao

3. 统计个数

3.awk =>
#!/usr/bin/awk
{count[$1] += $2}
END{ for (i in count)
  {print count[i], i};
}

# cat 3 =>
caoqing:20
xiaobao:100
caoqing:5 
wanghuan:4 
xiaobao:10

# awk -F":" -f 3.awk 3
4 wanghuan
25 caoqing
110 xiaobao

4. 统计单词个数

4.awk =>
#!/usr/bin/awk
{ for(i=1; i<NF; i++) count[$i]++ }
END { for ( i in count)
        {print count[i], i}
}

# cat 4
caoqing xiaobao wanghuan xiaobao xiaobao wanghuan xiaobao caoqing

# awk -f 4.awk 4
2 wanghuan
1 caoqing
4 xiaobao


© 著作权归作者所有

共有 人打赏支持
lucifercn
粉丝 14
博文 71
码字总数 63041
作品 0
深圳
程序员
私信 提问
linux`操作文本的三大利器

、、是操作文本的三大利器,也是必须掌握的命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属功能最强大,但也最复杂。更适合单纯的查找或匹配文本,更适合编辑匹配到的文本,更适...

丁典
2018/07/30
0
0
awk 用法详解!

awk简介 awk: 中文意思是报告生成器 能够根据我们输入的信息,将信息格式化以后显示,将定义好的信息以比较美观(直观)的方式显示出来出现比较早,继而出现了new awk(nawk)在windows上实现...

求学ing
2013/08/08
10.8K
0
shell学习之awk或gawk

AWK 是该编程语言本身的名称,它编写于 1977 年。其名称是三个主要作者的姓的首字母缩写:Drs. A. Aho、P. Weinberger 和 B. Kernighan。 因为 AWK 是一种文本处理和模式匹配语言,所以它通常...

woshixin
2018/11/29
0
0
Linux文本处理工具

1、grep grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打...

SupermanNet
2017/06/16
0
0
awk最简单明了入门方法

Awk,sed,grep三剑客 Grep合适单纯的查找或者匹配文本 Sed合适编辑匹配到的文本 Awk更合适格式化,对文本进行比较复杂的处理 Awk语法 awk [options] ‘program’ file1,file2........ # awk ...

探花无情
2017/04/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Cookie 显示用户上次访问的时间

import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.serv......

gwl_
今天
1
0
网络编程

第14天 网络编程 今日内容介绍  网络通信协议  UDP通信  TCP通信 今日学习目标  能够辨别UDP和TCP协议特点  能够说出UDP协议下两个常用类名称  能够说出TCP协议下两个常用类名称...

stars永恒
今天
1
0
二进制相关

二进制 众所周知计算机使用的是二进制,数字的二进制是如何表示的呢? 实际就是逢二进一。比如 2 用二进制就是 10。那么根据此可以推算出 5的二进制等于 10*10+1 即为 101。 在计算机中,负数以...

NotFound403
昨天
3
0
day22:

1、写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务: 1)使用格式:getinterface.sh [-i interface | -I ip] 2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项...

芬野de博客
昨天
2
0
Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少...

程序猿DD
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部