ファイル内の4つの単語の数を数えます。

ファイル内の4つの単語の数を数えます。

私はtsvの単語ファイルを持っており、ファイルにいくつの四重奏があるかどうかを計算し、ファイル名と四重奏の数をcsvファイルにエクスポートするbashを作成したいと思います。

たとえば、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

四重奏数を求めるには、整数除算を使用して4で割って単語数を数えます。

まず、sed 's/,/ /g'単語数を簡単に解析できるようにwithに変更します。それからそれを入力して単語数を数えました。最後に、私は整数除算を行いました。次のようになります。,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

csvファイルを作成するために<filename、quartet>を使用すると述べました。 bashのループを使用して、パターンに一致する各ファイルを解析するために2行以上が必要であるとします。

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

関連情報