在银河麒麟系统中需用命令行统计文本单词频次:cat文件|tr空格换行|grep-v空行|tr标点换行|grep-v空行|tr大写转小写|sort|uniq-c|sort-nr;两次grep-v'^$'必不可少,否则标点转行产生空行致统计错误。

在银河麒麟操作系统中统计文本文件内单词出现频次,需借助Linux命令行工具组合实现,不能依赖图形界面软件的“查找替换”功能——那只能计数单次匹配,无法按单词粒度去重统计。
用命令行统计纯文本单词频次
打开终端(快捷键 Ctrl+Alt+T),进入存放文本文件的目录。
执行以下命令:cat 文件名.txt | tr '[:space:]' '\n' | grep -v '^$' | tr '[:punct:]' '\n' | grep -v '^$' | tr 'A-Z' 'a-z' | sort | uniq -c | sort -nr。
这条命令链将空格和制表符换行为换行→过滤空行→把标点符号全换成换行→再滤一次空行→统一转小写→排序→合并重复行并计数→按次数降序排列。其中 【grep -v '^$' 必须出现两次】,否则标点转行后产生的空行会干扰单词提取,导致统计结果多出大量“1次”条目。
对特定单词做精确计数
方法一:使用 grep -o -w "目标单词" 文件名.txt | wc -l。
方法二:用 awk '{for(i=1;i。
方法一更简洁,【-w 参数确保只匹配完整单词】,避免“cat”被“concatenate”误计;方法二支持大小写不敏感匹配,且能处理单词前后带标点的情况,比如“cat.”或“'cat'”。
批量处理多个文本文件
第一步:确认当前目录下所有待统计的 .txt 文件名无空格、无中文路径。
第二步:运行循环命令:for f in *.txt; do echo "== $f =="; cat "$f" | tr '[:space:]' '\n' | grep -v '^$' | tr '[:punct:]' '\n' | grep -v '^$' | tr 'A-Z' 'a-z' | sort | uniq -c | sort -nr | head -5; done。
第三步:该命令会依次处理每个 .txt 文件,只显示各文件中出现频次最高的前5个单词,并标注来源文件名。注意 【文件名必须用双引号包裹 "$f"】,否则含空格的文件名会导致命令中断或误读路径。











