ファイル内の各文字で始まる単語数の計算

ファイル内の各文字で始まる単語数の計算

ファイルをインポートし、アルファベットの各文字が単語数の降順で単語を開始する回数を印刷する必要があります。たとえば、ファイルが次のような場合:

my nice name is Mike Meller 

その後、出力は次のようになります。

3 M
2 N
1 I

これを1行で行う必要があります。wc -mとのようなコマンドがあることを知っていますが、wc -w各文字を繰り返して同じ方法で印刷してから、好きな方法で並べ替える方法がわかりません。

ベストアンサー1

片道...(同じ単語を2回カウントしないように編集)

$ echo "my nice name is Mike Meller" | tr ' ' '\n' | sort -f | uniq -i | sed -nr 's/^([a-z]).*/\U\1/Ip' | uniq -c | sort -r
  3 M
  2 N
  1 I
  • tr ' ' '\n'スペースを改行に変更
  • sort -f大文字と小文字が異なる場合でも、同じ項目が一緒になるように行を並べ替えます。
  • uniq -i重複した単語を削除して大文字と小文字を無視してください。
  • sed -nr 's/^([a-z]).*/\U\1/Ip'最初の文字を除くすべての文字を削除し、すべての文字を大文字に変更し、文字で始まらない行を印刷しないでください。
  • uniq -c同じ行数の計算
  • sort -r降順ソート

echo "my nice name is Mike Meller"次に交換... cat name-of-your-file

おすすめ記事