计算出现次数的批次

计算出现次数的批次

我必须使用字母表中的每个字母从 A 到 Z 提取单词数。我要创建的脚本将要分析的字典文件的名称作为参数,并将像这样使用 ./langstat。 sh dico.txt

我尝试了一些这样的事情:

    #!/bin/bash
    cat ~/dico.txt | grep -o A | wc -l

问题是它给了我所有文件中 A 的数量,但我只想知道 A 进入的单词的数量。

你能帮我一下吗?

答案1

你可以用这个代替:

for c in {A..Z}; do
  echo -n "$c: "
  tr ' ' '\n' < dico.txt | grep $c | wc -l
done

它的工作原理如下:for 循环从 A 到 Z 遍历每个字符。tr用换行符替换所有空格,因此每个单词都有自己的行。然后grep搜索单词中的字符,如果找到该字符则将其打印出来。wc计算这些行。

答案2

有帮助吗?

#!/bin/bash
tr ' ' '\n' < "$1" | sort -u > my.tmp
for letter in {A..Z}
do
    printf "Words with %c : " $letter
    grep -iwc "\w*$letter\w*" my.tmp
    echo
done
rm my.tmp

相关内容