2013-03-14 12 views
5

は、私は以下のようにファイルtext.txtがあるとします。オカレンスカウントを含むテキストファイルのすべての単語をリストしますか?

she likes cats, and he likes cats too.

私は私の結果は次のようになりたいのです。それにspace , .を置くことは、スクリプトをより簡単に希望の場合、それはなり

she 1 
likes 2 
cats 2 
and 1 
he 1 
too 1 

良い。

これを実現するシンプルなシェルパイプラインはありますか?

+0

フレーズが「私の猫500ポンドのうちの1つ、その猫の超サイズ! - それは1匹の猫に1匹の猫を加えたものか何か他のものか?その文に数えられる単語「s」はありますか?単語「500」と単語「lbs」または単語「500lbs」などがありますか?単語 "スーパー"と "サイズ"または単語 "スーパーサイズ"はありますか? –

答えて

18

はここに私の心に近く、貴重ワンライナーです:

cat text.txt | sed 's|[,.]||g' | tr ' ' '\n' | sort | uniq -c 

ストリップsedの句読点(チューン正規表現味を)、TRは行ごとに結果一つの単語を置きます。 GNUで

+0

あなたは素晴らしいです! – JackWM

+1

それからチェックマークボタンを押してください。 – phs

+0

良い姿勢のために@phs +1!ユーモア。 –

0

あなただけの非アルファベット文字の任意のシーケンスするレコードセパレータ(RS)を指定することができますawkは:

$ gawk -v RS='[^[:alpha:]]+' '{sum[$0]++} END{for (word in sum) print word,sum[word]}' file 
she 1 
likes 2 
and 1 
too 1 
he 1 
cats 2 

それはで「言葉」を特定する方法のあなたの問題を解決することはできません一般的です。

関連する問題