CSVファイルの列で部分文字列を検索する

CSVファイルの列で部分文字列を検索する

約15000行と複数の列を持つcsvファイルがあります。データセットは次のとおりです。

A,B,C,   message               D, E, F
a,b,c,Hi how are you ?          d,e,f
a,b,c,Hi Hello.Are you ok?     d,e,f
a,b,This >are< should not be counted,d,e,f
a,b,c,Hi I'm good. Are you ok ? d,e,f
a,b,c,Hi You are good, are you? d,e,f
a,b,c,I dare to add this line   d,e,f

ここでは、UNIXシェルコマンドを使用して、メッセージ列に「are」という単語の発生回数をどのように計算できますか?

ベストアンサー1

この試み、

 grep -oc are file
  • -o一致する部分だけが印刷されます。
  • -c一致する行の数を印刷します。

-i結果も必要に応じてオプションを追加できますAre。一致するパターンの大文字と小文字の区別を無視します。

同じ行に一致するパターンが複数ある場合...

grep -o are file | wc -l

AWKを使用:

awk -F ',' '$4 ~ /are/ {count++} END{print count}' file
awk -F ',' '$4 ~ /[Aa]re/ {count++} END{print count}' file

おすすめ記事