ツイートを含むテキストファイルがあります。ツイートで特定の単語が言及された回数を数える必要があります。たとえば、このファイルには次のものが含まれます。
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?
ドキュメントでiPhoneという言葉が言及された回数を数えたいとしましょう。私が試したことは次のとおりです。
cut -f 1 Tweet_Data | grep -i "iPhone" | wc -l
うまくいきますが、Unixの「wc」コマンドは混乱しています。次のように試してみると、違いは何ですか?
cut -f 1 Tweet_Data | grep -c "iPhone"
代わりに-cをどこで使用する必要がありますか?どちらの方法もツイートでいっぱいの大容量ファイルで異なる結果を生成し、どのように機能するのか混乱しています。発生回数を計算する正しい方法は何ですか?
答え1
そのような要件が与えられたら、私はGNU grepを使います(-o
オプション)、それからこれを渡してwc
総発生回数を計算します。
$ grep -o -i iphone Tweet_Data | wc -l
3
プレーンテキストgrep -c
のデータが計算されます。ワイヤー総回数ではなく一致回数性格そのゲーム。この-o
オプションを使用すると、grep は元の行で一致が何回見つかったかに関係なく、各一致を独自の行に出力するように指示します。
wc -l
wc
行数を計算するようにユーティリティに指示します。 grep が各マッチを独自の行に入れた後、これは入力に対応する単語が表示される回数の合計です。
GNU grep が使用できない、または不要な場合は、tr
各単語が 1 行に表示されるように入力を変換してからgrep -c
計算を使用できます。
$ tr '[:space:]' '[\n*]' < Tweet_Data | grep -i -c iphone
3
答え2
最も簡単な方法は、
grep -wc "your_text" FileName
あなたにとってはそうです。
grep -wc "iPhone" Tweet_Data