例:给出一个文件,domain.txt,内容如下:
sina.com
baidu.com
sohu.com
google.com
另外有一个文件,sites.txt
www.sina.com
news.sohu.com
dl1.baidu.com
map.google.cn
www.baidu.com
sports.sina.com
finances.sohu.com
如何用awk统计出每个域在sites.txt中出现的次数
http://bbs. chinaunix.net/ thread-1706400-2-1.html
--------------------------------------------------------------
awk -F. '{a[$2"."$3]++}END{for(i in a)print i ,a[i]}' sites.txt
这个是统计sites.txt中各个域出现的次数
awk 'NR==FNR{a[$0]=0;next}{for(i in a)if($0~i)a[i]++}END{for(i in a)print i,a[i]}' domain.txt sites.txt
if($0~i) 这段正则如何改的匹配更精准
比如 sites.txt 有一条 xx.abcbaidu.com
这样就会错,要改成$0~.i$
语法应该怎么写!
awk 'NR==FNR{a[$0]}NR>FNR{for(i in a){if($0~i)a[i]++}}END{for(i in a){print i,a[i]}}' domain.txt sites.txt
while read line;do echo "$line:"$(grep -c $line sites.txt);done <domain.txt
- awk -F'.' 'NR==FNR{a[$(NF-1) "." $NF]++}NR!=FNR&&($0 in a){print $0 "\t" a[$0]}' sites.txt domain.txt
- 分析发现,只需要提取域名的最后两个域,如果domain.txt 中的域名不是2个字段,这段代码不适用
awk -F. 'NR==FNR{a[$0]=0;next}{t=$(NF-1)"."$NF;if(t in a)a[t]++}END{for(i in a)print i,a[i]}' domain.txt sites.txt
#!/bin/sh
for i in `cat domain.txt`
do
NO=`grep $i sites.txt|wc -l`
echo $i : $NO >> file
done
分享到:
相关推荐
### Awk 使用手册详解 #### 一、Awk 简介 Awk 是一种功能强大的文本处理工具,广泛应用于 Unix 和类 Unix 系统中。它的名字来源于三位设计者的名字首字母:Aho (Peter)、Weinberger (Brian) 和 Kernighan (Doug)。...
### awk 使用手册详解 #### 一、awk简介与基本概念 awk 是一款强大的文本处理工具,在 Unix 和类 Unix 操作系统中广泛使用。它最初由 Alfred Aho、Peter Weinberger 和 Brian Kernighan 开发,因此得名 awk(取自...
sed 和 awk 使用实例 Sed 和 Awk 是两种强大的命令行工具,在 Unix 和 Linux 系统中广泛应用于文本处理和数据处理。本文将通过一些实例来展示 Sed 和 Awk 的使用场景和方法。 一、sed 使用实例 1. 删除 login....
### AWK使用手册知识点 #### 一、AWK简介与适用场景 - **AWK**是一种专门用于文本处理和报告生成的脚本语言,在Linux环境下非常流行。 - **适用问题**:AWK适用于处理结构化的文本文件,尤其擅长处理那些包含特定...
### awk使用基本理论 #### 一、awk简介与版本 - **awk** 是 Linux Shell 三剑客之一,主要用于文本处理。它是一种强大的文本分析工具,可以在数据流中搜索匹配的模式并执行相应的操作。 - **awk** 有三个主要版本...
### Unix Awk 使用手册知识点详解 #### 一、Awk 的起源与发展 - **起源**:Awk 语言由 Alfred Aho、Peter Weinberger 和 Brian Kernighan 在 20 世纪 70 年代末期共同创造,其名称正是来源于这三位发明者的姓氏首...
此外,由于`awk`通常作为Unix/Linux系统的一部分预装,用户无需额外安装即可直接使用,这使得它成为一个易于获取和使用的工具。 在处理文本数据时,`awk`的优势在于它可以方便地处理分隔符,如空格或制表符,使得...
### AWK 使用详解知识点 #### 一、AWK 概述与适用场景 - **AWK 的定位**:AWK 是一种专为文本处理设计的脚本语言,它结合了强大的文本处理能力和易于上手的特点,非常适合用于数据分析、报告生成等应用场景。 - **...
《AWK使用手册》是专为帮助读者快速掌握AWK编程语言而编写的,通过一系列具有代表性的实例和解析,让读者逐步理解并熟练运用AWK处理数据和生成报表。AWK是一种强大的文本分析工具,它能对输入数据(如文件、标准输入...
### AWK使用简介 #### 一、AWK概述 AWK是一种专为文本处理而设计的编程语言,广泛应用于Linux/Unix环境中。它能够高效地处理来自标准输入、单个或多个文件,甚至其他命令输出的数据。作为一种强大的编程工具,AWK...
### Unix之AWK使用详解 #### 一、AWK简介 AWK是一种强大的文本处理工具,在Unix和类Unix操作系统中广泛使用。它不仅能够高效地处理数据,还具备一定的编程能力,可以用来编写复杂的脚本。 #### 二、基本语法与...
Linux 主要shell命令、sed、awk使用详解 Linux 主要shell命令详解 shell 是用户和 Linux 操作系统之间的接口。Linux 中有多种 shell,其中缺省使用的是 Bash。本章讲述了 shell 的工作原理,shell 的种类,shell ...
### Shell编程中的AWK使用详解 #### 一、AWK简介 AWK 是一种功能强大的文本处理工具,其名称来源于三位创始人 Alfred Aho、Peter Weinberger 和 Brian Kernighan 的首字母。它不仅广泛应用于 Linux 环境,也是任何...