MST

星途 面试题库

面试题:Bash中wc命令结合其他工具实现复杂文本分析

假设有一个包含大量英文单词的文本文件,每行一个单词。要求使用wc命令以及其他Bash工具,统计出文件中不同单词的数量,并按照单词出现频率从高到低排序输出前10个单词及其出现次数。请给出完整的实现步骤和相应的Bash命令。
23.6万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
  1. 实现步骤
    • 使用cat命令读取文件内容。
    • 通过sort命令对单词进行排序,这样相同的单词会排列在一起。
    • 利用uniq -c命令统计每个单词出现的次数,-c选项表示在每行前加上出现次数。
    • 再使用sort -nr命令对统计结果按出现次数从高到低排序,-n表示按数字排序,-r表示逆序。
    • 最后使用head -n 10命令输出前10个单词及其出现次数。
  2. Bash命令
cat your_file.txt | sort | uniq -c | sort -nr | head -n 10

在上述命令中,your_file.txt为包含大量英文单词的文本文件名,需替换为实际文件名。

另外,也可以使用wc命令结合sortuniq等工具实现:

  1. 实现步骤
    • 使用xargs wc -l统计每个单词出现的行数(即次数),xargs会将文件中的每行作为参数传递给wc -l
    • 由于xargs wc -l输出格式需要调整,先通过tr命令将输出格式调整为类似uniq -c的格式。
    • 然后使用sort -nr对结果按出现次数从高到低排序。
    • 最后使用head -n 10输出前10个单词及其出现次数。
  2. Bash命令
cat your_file.txt | xargs wc -l | tr ' ' '\t' | sort -nr | head -n 10

同样,your_file.txt需替换为实际文件名。