コマンドラインを使用して一意の単語数を印刷します。

コマンドラインを使用して一意の単語数を印刷します。

宿題があります:

ファイルアリスにいくつかのユニークな単語があるか、そしてその数を調べてください。ソートされた一意の単語をalice_uniqueというファイルに印刷します。アポストロフィを使用して単語を分割すると、他の特殊文字と同様に正しく分割されます。

これまで私はこれを持っています

tr -sc 'A-Za-z' '\012' < alice | sort | uniq -c > alice_unique

ところで、特殊文字('、!、?など)を含む単語をどのように組み合わせるべきかわかりません。または、一意の単語の総数を計算する方法です。

テキストファイルAlice(スタート)

奇妙な国のアリス

ルイス・キャロル

ミレニアムパルクラムバージョン3.0

第1章 ウサギの洞窟に陥る

アリスはやることなく、ビーチにいる妹の隣に座っていることにうんざりし始めました。彼女は妹が読んでいる本を1、2回すすめましたが、その中には絵や会話がありませんでした。アリスは「これは何ですか?」と思いました。本ですよ、絵もなく会話もありませんか?」

それで彼女はデイジーチェーンを作る楽しさが起きてデイジーを拾う手間をするほど価値があるか一人で考えていました(暑い天気のために眠すぎて愚かだと感じたからです)。ピンクの目を持つウサギが彼女を通り過ぎています。

ベストアンサー1

<alice tr -cd "[:alpha:][:space:]-'" |
  tr ' [:upper:]' '\n[:lower:]' |
  tr -s '\n' |
  sed "s/^['-]*//;s/['-]$//" |
  sort |
  uniq -c > alice_unique

一行ずつ:

  • 文字、スペース、アポストロフィ、ハイフンを除くすべての項目を削除します。
  • スペースを改行して大文字を小文字に変換
  • 連続した改行を「圧着」
  • 前または後のアポストロフィとハイフン除去
  • 単語の並べ替え
  • 各固有単語とその単語が表示される回数を表示します。

数字を単語として計算する必要がある場合、これは間違っています。テキストがASCIIでない場合は機能しない可能性があります。 ~のため奇妙な国のアリスおそらくこれで十分でしょう。

おすすめ記事