📌  相关文章
📜  在 UNIX 中计算字符串中区分大小写的单词的出现次数的程序 (1)

📅  最后修改于: 2023-12-03 15:07:50.663000             🧑  作者: Mango

在 UNIX 中计算字符串中区分大小写的单词的出现次数的程序

本程序旨在在 UNIX 系统中计算字符串中区分大小写的单词的出现次数。

实现原理

本程序使用了以下步骤来实现计算:

  1. 将字符串中所有非单词字符(如逗号、句号、感叹号等)替换为空格;
  2. 使用 tr 命令将所有大写字母替换成小写字母;
  3. 使用 awk 命令对文本进行处理,将每个单词作为一个记录,并统计其出现次数;
  4. 输出每个单词及其出现次数。
代码示例
#!/bin/bash

# 替换字符串中的非单词字符为' '
text=$(echo "$1" | tr -cs '[:alnum:]' ' ')

# 将大写字母替换成小写字母
text=$(echo "$text" | tr '[:upper:]' '[:lower:]')

# 使用awk进行处理并统计单词出现次数
echo "$text" | awk '{
    for (i=1; i<=NF; i++) {
        count[tolower($i)]++
    }
}

END {
    for (word in count) {
        print word": "count[word]
    }
}' | sort
如何使用

在 UNIX 系统中,使用终端进入程序所在目录,输入以下命令即可计算出现次数:

$ ./wordcount.sh "The quick brown fox jumps over the lazy dog."
brown: 1
dog: 1
fox: 1
jumps: 1
lazy: 1
over: 1
quick: 1
the: 2
注意事项
  • 本程序仅适用于 UNIX 系统,不支持其他操作系统;
  • 本程序区分大小写,同一单词的不同大小写形式会被视为不同的单词;
  • 使用时需将程序保存为 .sh 文件,并使用 chmod 命令授予执行权限。