これまでのコードは次のとおりです。
grep -rc 'Author' $1
ディレクトリ内のすべてのファイルを印刷し、引数として使用します。ただし、出力をどのように並べ替えるのですか(例:):
- data1:43
- data2:56
- data3:14
最高から最低までのリストを入力してください。
- data2:56
- data1:43
- data3:14
答え1
grep -rc 'Author' $1 | sort -t : -k 2,2n
特定の行でキーワードが何度も繰り返されても、キーワードを含む行数が必要な場合は問題ありません。実際の単語数が必要な場合は、これを使用する必要があります
echo $1:$(grep -o 'Author' $1|wc -l) | sort -t : -k 2,2n
grepの-oオプションは、grepのGnuバージョンで利用できる可能性が高いです。以前のレガシーシステムで提供されているgrepを使用している場合は、使用できない可能性があります。簡単にお知らせします。
答え2
高いものから低いものの順に並べ替え:
grep -rc 'Author' $1 | sort -r -t ':' -k2,2n
-r
最も高いものから最も低いものまで逆順に並べ替えます。-t
区切り文字を紹介します。-k
ソートするフィールドを紹介します。フィールドは定義された区切り文字で区切られます-t
。この構文は、2と2の間のすべてのフィールド(つまり、2番目のフィールドのみ)に基づいてソートすることを意味します。事前編成順序の代わりに数値を使用する方法ですn
(たとえば、直後で10
は9
なく後に来ます1
)。