在Unix系统中如何找出多个文件中的最常用单词?
找出目录所有文件中出现频率最高的单词
你当前用来单独获取每个文件最常用单词的命令是:
$ for file in *; do printf '%s : %s\n' "$(grep -Eo '[[:alnum:]]+' "$file" | sort | uniq -c | sort -rn | head -n1)" "$file" done
如果要统计所有文件中出现频率最高的单词,无需逐个文件处理,直接合并所有文件内容统一统计即可,使用以下命令:
grep -Eo '[[:alnum:]]+' * | sort | uniq -c | sort -rn | head -n1
命令分步解释:
grep -Eo '[[:alnum:]]+' *:遍历当前目录所有文件,提取出所有由字母/数字组成的单词,每个单词单独占一行sort:对所有单词排序,让相同单词集中在一起uniq -c:统计每个单词的出现次数,输出格式为「出现次数 单词」sort -rn:按出现次数从高到低排序(-r表示倒序,-n表示按数值大小排序)head -n1:输出排序后的第一行,即所有文件中出现频率最高的单词
内容的提问来源于stack exchange,提问作者yxx
相关产品推荐
相关产品推荐

