我是 awk 的新手,所以我在解决这个问题时遇到了一些麻烦。我需要做的是编写一个脚本来打印三个字符串“They”、“He”、“She”的计数,但我只能在 awk 中执行此操作并且单词区分大小写。到目前为止,它只打印“他们”在文本文件(这是一篇文章)中出现的次数,而不是其他的。关于如何仅在 awk 中执行此操作的一些输入会很棒。这是我目前所拥有的
awk 'BEGIN {print "They" " " "He" " " "She"} #printing header
{for (i=0;i<=NF;i++)if ( $i =="They" ) numA++;
if ( $i =="He" ) numB++;
if ( $i =="She" ) numC++ } END {print numA," ", numB, " ", numC}' myFile.txt
预期的输出应该是:
They He She
24 16 17
最佳答案
您缺少“for”循环的大括号 - 您应该:
awk 'BEGIN {print "They" " " "He" " " "She"} #printing header
{for (i=0;i<=NF;i++)
{
if ( $i =="They" ) numA++;
if ( $i =="He" ) numB++;
if ( $i =="She" ) numC++;
}
} END {print numA," ", numB, " ", numC}' myFile.txt
关于linux - 如何使用awk从文本文件中打印多个字符串的总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28733213/