如何在Linux中使用Shell脚本计算文件中单词的出现次数
时间:2020-01-09 10:37:50 来源:igfitidea点击:
脚本计算文件中单词的出现次数
我们可以使用awk的关联数组以不同方式解决此问题。
单词是字母字符,由空格或者句点分隔。
首先,我们应该解析给定文件中的所有单词,然后需要找到每个单词的计数。
可以使用sed,awk或者grep等工具使用正则表达式来解析单词。
样例Shell脚本
下面是一个示例shell脚本,它将对文件中单词的出现进行计数并打印出文件中所有单词的总数。
# cat /tmp/count_words.sh #!/bin/bash #Desc: Find out frequency of words in a file if [ $# -ne 1 ]; then echo "Usage:# cat /tmp/dummy_file.txt count occurrences of word in file linux shell script to count number of words in a file count occurrences of all words in file linux shell script to count number of lines in a file without using wc command shell script to counts number of lines and words in a file find count of string in file linux shell script to counting number of lines words and characters in a file count number of lines in a file linuxfilename"; exit -1 fi filename= egrep -o "\b[[:alpha:]]+\b" $filename | \ awk '{ count[# /tmp/count_words.sh /tmp/dummy_file.txt Word Count script 4 linux 4 words 4 counts 1 counting 1 without 1 count 6 lines 4 of 8 and 2 using 1 a 5 to 4 characters 1 number 5 in 8 command 1 shell 4 file 8 find 1 wc 1 string 1 all 1 word 1 occurrences 2]++ } END {printf("%-14s%s\n","Word","Count") ; for(ind in count) { printf("%-14s%d\n",ind,count[ind]); } }'
接下来,我将创建一个带有某些内容的" dummy_file.txt",我们将使用该内容来计算文件中的所有单词
# egrep -c '\<count\>' /tmp/dummy_file.txt 6
现在,我们将沿着该文件运行脚本。
如我们所见,脚本将打印出文件中单词的全部出现。
该脚本还能够区分匹配的单词,例如计数,计数,计数
# egrep -c 'count' /tmp/dummy_file.txt 8
一行代码命令
我们还可以使用grep,sed,tr,python等各种内衬命令来计算文件中单词的出现次数。
我将在此处显示更多示例:
使用grep命令
使用egrep,我们可以使用不同的指令来计算文件中单词出现的次数,例如在/tmp/dummy_file.txt
中打印单词出现的总数。
# tr ' ' '\n' < /tmp/dummy_file.txt | grep '\<count\>' | wc -l 6
这里的'\ <count >'确保我们只匹配确切的字符串,否则,如果我们只使用单词count,则检查输出。\ <
断言单词的开头,\>
断言单词的结尾
这是因为它试图捕获计数并也从文件中计数
使用tr命令
与grep相似,我们可以使用翻译命令来计算文件中单词的出现次数
##代码##我们也可以使用sed和其他工具列出Linux或者Unix中文件的字数统计。