使用Linux命令统计文件指定列中字符串出现次数
2017-09-07 14:40
471 查看
使用脚本生成测试文件,内容为几种编程语言的随机列表
此处使用了$RANDOM来生成随机数生成一个样例文件,如test_201709,文件内容只有一列
#!/bin/bash generate_file="test_$(date +%Y%m)" names=(Java Shell C C++ Python Php Go) names_length=${#names[@]} rm -f ${generate_file} for i in {1..200} do random_num=$RANDOM index=$((random_num%names_length)) echo "${names[${index}]}" >> ${generate_file} done
统计各个语言出现的次数(以下测试中的次数重新生成文件后会不一样)
此处文件名可直接使用上述文件名规则test_$(date +%Y%m)sort test_$(date +%Y%m) | uniq -c
执行结果如下,第一列为次数:
26 C 27 C++ 32 Go 27 Java 33 Php 29 Python 26 Shell
按出现次数由高到底排序
sort test_$(date +%Y%m) | uniq -c | sort -k1,1nr
执行结果如下:
33 Php 32 Go 29 Python 27 C++ 27 Java 26 C 26 Shell
找出出现次数最高或者最低的三种语言
1.次数最高三种语言sort test_$(date +%Y%m) | uniq -c | sort -k1,1nr | head -3
执行结果如下:
33 Php 32 Go 29 Python
2.次数最低三种语言
1)次数最低语言由高到低排序展示
sort test_$(date +%Y%m) | uniq -c | sort -k1,1nr | tail -3
执行结果如下:
27 Java 26 C 26 Shel
2)次数最低语言由低到高排序展示
sort test_$(date +%Y%m) | uniq -c | sort -k1,1n | head -3
执行结果如下:
26 C 26 Shel 27 Java
以上操作针对是单列的文件,若对多列文件可用awk命令拆分出列,再进行以上操作即可
awk的-F选项可以指定分割符,默认分割符为空字符,获取某一列命令如下n需要替换为具体列数
awk '{print $n}' file_name awk -F ',' '{print $n}' file_name
若需要查找第二列出现次数前三且列分割符为’,’,命令如下:
awk -F ',' '{print $2}' file_name | sort | uniq -c | sort -k1,1nr | head -3
查看文件行数
file_name 可为多个文件,为多个时会把总行数显示,并且此时4000
可按照行数排序来查找文件
wc -l file_name
例如在我当前测试目录下执行wl -l ./* 显示如下:
12 ./generate.sh 200 ./test_201709 212 total
相关文章推荐
- 统计字符串在文件中出现的次数 用系统命令实现
- linux统计文件中字符串出现次数
- 自定义VBS脚本(统计在指定文件中搜索字符串出现的次数)
- 嵌入式 shell用一行命令统计一文本文件中包含指定字符串出现次数
- 【shell】linux统计某一文件中字符串“sent ip”出现的次数
- python统计指定文件中指定字符或字符串出现的次数
- linux统计字符串在文件出现次数
- linux命令 对日志文件的IP出现的次数进行统计 并显示次数最多的前六名
- awk命令之 - 统计/etc/passwd文件中各用户所使用的shell类型及出现次数
- Linux命令经典面试题:统计文件中出现次数最多的前10个单词
- 使用命令批量对文件中出现的字符串进行替换
- linux 统计关键字在文件中出现的次数
- Linux 统计某个字符串出现的次数
- linux中使用head命令和tail命令查看文件中的指定行
- linux 统计文件中单词出现次数
- 统计一个字符串在文件中出现的次数
- 【Shell】统计文件里面特定字符串出现次数
- 读取txt文件统计文章里"java"字符串出现的次数
- 统计某个字符串中指定字符串出现的次数
- Linux下统计文件行数 语法:wc [选项] 文件… 说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有 指定文件的总统计数。字是由空格字符