计算文件中每四个单词的数量

计算文件中每四个单词的数量

我有一个 tsv 单词文件,我想编写一个 bash 来计算文件中有多少个四重奏,并将文件名和四重奏数量导出到 csv 文件。

例如,对于文件 fileName.tsv: I,have,this,word,cat,home,dog,day

结果将是一个带有 fileName.tsv,2 的 csv 文件。

答案1

像这样的东西

$ echo "I,have,this,word,cat,home,dog,day"|gawk -F, '{printf("%d\n", NF/4)}'
2

答案2

要获得四重奏的数量,您可以计算单词的数量,使用整数除法除以四。

首先,我会用withsed 's/,/ /g'来替换,以便可以轻松解析单词数。然后我将其输入以计算单词数。最后我用 来执行整数除法。看起来像这样:,wc -wbash$(( x / 4 ))

$ cat fileName.tsv 
I,have,this,word,cat,home,dog,day

$ sed 's/,/ /g' fileName.tsv
I have this word cat home dog day

$ sed 's/,/ /g' fileName.tsv | wc -w
8

$ echo $(( $(sed 's/,/ /g' fileName.tsv | wc -w) / 4 ))
2

您提到使用 <filename,quartet> 制作 csv 文件。我假设您需要不止一行,这样您就可以在 bash 中使用循环来解析与模式匹配的每个文件。

for filename in *.tsv; do
  quartet=$(( $(sed 's/,/ /g' $filename | wc -w) / 4 ))
  echo $filename,$quartet >> output.csv
done

相关内容