ツイートを含むテキストファイルがあり、ツイートで単語が言及された回数を数える必要があります。たとえば、ファイルには次のものが含まれます。
Apple iPhone X is going to worth a fortune
The iPhone X is Apple's latest flagship iPhone. How will it pit against it's competitors?
ファイルでWord iPhoneが何回言及されているかを数えたいとしましょう。これが私が試したものです。
cut -f 1 Tweet_Data | grep -i "iPhone" | wc -l
それは確かに動作しますが、UNIXの「wc」コマンドについて混乱しています。私が次のようなことを試した場合の違いは何ですか:
cut -f 1 Tweet_Data | grep -c "iPhone"
代わりに-cが使用されていますか?これらは両方ともツイートがいっぱいの大きなファイルで異なる結果を生み、私はそれがどのように機能するのか混乱しています。発生をカウントする正しい方法はどれですか?
このような要件がある場合、GNU grep( -o
オプション の場合)、を使用しますwc
に渡して、発生の総数をカウントします。
$ grep -o -i iphone Tweet_Data | wc -l
3
データの単純なgrep -c
は、一致する行の総数ではなく、一致する行の数をカウントします。 -o
オプションを使用すると、grepは、一致が行に何回出現しても、その一致をオンラインで出力するように指示します。
wc -l
は、wc
ユーティリティに行数をカウントするように指示します。 grepが各一致を独自の行に配置した後、これは入力内のWordの出現回数の合計です。
GNU grepが利用できない(または必要な)場合は、tr
を使用して入力を変換し、各Wordが独自の行にあるようにし、grep -c
を使用してカウント:
$ tr '[:space:]' '[\n*]' < Tweet_Data | grep -i -c iphone
3
最も簡単な方法は、
grep -wc "your_text" FileName
あなたのために、
grep -wc "iPhone" Tweet_Data