約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