ファイルリストから単語リストをコンパイルする

ファイルリストから単語リストをコンパイルする

人々はこの使命をどのように実行しますか?

私はそれを試してみましたが、これを思い出しました(他の同様の質問の助けを借りて):

tr -c '[:alnum:]' '[\n*]' < long_concatenated_file

ところで…問題があります。:alnum:ただ文字と数字のリストです。読んだ後、私はこの状況を軽減しようとしますman

tr -c '[:alnum:=-=]' '[\n*]' < long_concatenated_file

ダッシュのある単語は置き換えるアイテムのリストに含める必要がありますが、何らかの理由でそうではありません。

これを行う正しい方法は何ですか?

明確に言えば、最終的な目標はsort | uniq -c | sort -nrそれを適用し、プロジェクトで最も使用されている文字列を識別し、問題解決方法がまったく意味がなく、いくつかの解決が必要な場合にそれを便利な定数に変換することです。他の方法ではいくつかの提案をしてください。

答え1

-単語以外のすべての文字(英数字)を改行文字に置き換えてから、単語以外の文字セットに含めたいと思います。

この目的のために(ここでは有効な単語文字trも含めて、出力から連続した改行文字を削除するために使用しました):'-s

tr -s -c "[:alnum:]-'" '\n'

[=-=]または、必要に応じて同等クラスを使用します。

tr -s -c "[:alnum:][=-=]'" '\n'

答え2

@Kusalandra、答えてくれてありがとう。しかし、それは私がしたいことではありません。私の目標は、:alnum:setまたは「-」文字で構成される各単語を別々の行に印刷することです。

結果のシーケンスは、次の新しいクラスを生成することです。

cat longfile | tr -c '[[:alnum:]-]' '[\n*]'

やりたいことをしてください。

例:

$echo aaa-abc asdasd asswdwew | tr -c '[[:alnum:]-]' '[\n*]'
aaa-abc asdasd asswdwew

関連情報