テキストファイルを処理し、出現するすべての単語をカウントして、次のように出力するコマンドがありました。
[email protected] $˜ magic-command-i-forgot | with grep | and awk | sort ./textfile.txt
66: the
54: and
32: I
16: unix
12: bash
5: internet
3: sh
1: GNU/Linux
したがって、行ごとではなく単語ごとに検索し、1つの単語だけでなくすべての単語に対して検索します。ずっと前にインターネットのどこかで見つけましたが、見つけられず、覚えていません。
承認された回答:
tr
を使用します awkの代わりに :
echo "Lorem ipsum dolor sit sit amet et cetera." | tr '[:space:]' '[\n*]' | grep -v "^\s*$" | sort | uniq -c | sort -bnr
-
tr
スペースを改行に置き換えるだけです -
grep -v "^\s*$"
空の行を削除します sort
uniq
の入力として準備する-
uniq -c
発生をカウントするには -
sort -bnr
空白を無視して、数値の逆順で並べ替えます
おお。 1行あたりの誓いを数えるのに最適なコマンドであることが判明しました
探す 。 -name“ * .py” -exec cat {} \; | tr‘[:space:]’‘[\ n *]’ | grep -v“ ^ \ s * $” |並べ替え| uniq -c | sort -bnr | grep fuck