统计文本中每个字符出现的次数
· 技术积累 · Linux

在Linux统计文本中每个字符出现的次数,方便去重使用,我是用来去重网站的文字,生成字体文件

使用 grep 和 sort 两个命令

# 如果要统计文本中每个字出现的次数,您可以使用grep -o、sort和uniq -c命令的组合,具体步骤如下:

1. 使用 grep -o 命令来将文本中的每个字单独列出来,. 表示匹配文本中的每个字符,-o表示只输出匹配的字符,不输出匹配的行。命令如下:
   grep -o . 文件名


2. 使用 sort 命令来对列出的每个字进行排序,命令如下:
   grep -o . 文件名 | sort


3. 使用 uniq -c 命令来统计排序后的每个字出现的次数,再加一个sort -n 把重复最多的排列最下面,命令如下:
   grep -o . 文件名 | sort | uniq -c |sort -n

由于去重后,每个字都是单独一行,整合为一行文本

# 使用 awk 和 tr 命令把去重后字单独显示,然后再去掉换行符
   grep -o . 文件名 | sort | uniq -c | awk '{print $2}' |tr -d '\n'

使用python3脚本统计

#!/bin/env python3

text = "abcderfadfe()`.;\.,,;季赛测试是反ab阿九弗兰克撒一化哈一闪测试"

# 创建一个空字典
char_count = {}

# 遍历文本中的每个字符
for char in text:
    # 判断字符是否在字典中已经存在
    if char in char_count:
        # 如果存在,则将该字符出现的次数加1
        char_count[char] += 1
    else:
        # 如果不存在,则将该字符添加到字典中,并将出现次数设为1
        char_count[char] = 1

# 输出每个字符出现的次数
for char, count in char_count.items():
    print(f"{char} {count}次")

例子:

# 文本
abcderfadfe()`.;\.,,;季赛测试是反ab阿九弗兰克撒一化哈一闪测试

# 进行去重排序
grep -o . test.txt |sort |uniq -c|sort -n|awk '{print $2}'|tr -d '\n'

统计文本中每个字符出现的次数


本文最后更新时间 2023-05-29
文章链接地址:
https://me.jinchuang.org/archives/1399.html
本站文章除注明[转载|引用],均为本站原创内容,转载前请注明出处
Nali 离线ip数据库文件
苹果CMS v10内容管理系统搭建
bin/ld: Dwarf Error: found dwarf version '5', this reader only handles version 2, 3 and 4 information.
Frp免费开源的 内网穿透代理工具

Ubuntu 22.04 源码编译安装 PHP7.4 使用OpenSSL1.1.1版本

微信小程序在开发者工具中正常,真机上打开网络失败

我要留言