入力として文字列IDがあります。最も頻繁に発生する識別子と発生回数をどのように計算しますか?
はい
入力する:
cat
dog
cat
dog
dog
dog
dog
fly
spider
spider
cat
cat
出力:
dog 5
答え1
sort
& コマンドを使用すると、すべての uniq -c
文字列の発生回数を次のように計算できます。
$ sort sample.txt | uniq -c
4 cat
5 dog
1 fly
2 spider
文字列 "dog"が必要な場合は、grep
前後に使用できます。
後ろに
$ sort sample.txt | uniq -c | grep dog
5 dog
今後
$ grep dog sample.txt | uniq -c
5 dog
どのように動作しますか?
このコマンドは指定されたuniq -c
すべての一意の文字列を計算しますが、最初にリストがソートされた順序でなければなりません。これがすぐにsort
計算を実行する前にこのコマンドを使用する理由です。
このコマンドは、grep
出力から関心のあるコンテンツを選択するために使用されます。grep
出力で必要な内容に応じて含めたり除外したりできるフィルタと考えることができます。
このsort
コマンドはルールに従ってデータをソートできます。この場合、デフォルトモードで実行するようにして、一連の英数字ソート規則に従ってデータをソートします。
答え2
文字列のみを探している場合:
grep -cxF dog
または
echo "dog: $(grep -cxF dog)"
動作するソリューションの完全なリスト:
> awk '{a[$0]++}; END {for (val in a) print val ": " a[val];}' file
spider: 2
cat: 4
fly: 1
dog: 5
答え3
データを並べ替えsort
て使用するuniq -c
sort < input.txt | uniq -c