1行に文字が表示される回数に基づいてファイルをソートする方法は?

1行に文字が表示される回数に基づいてファイルをソートする方法は?

私はLinuxに初めてアクセスし、ファイルで文字計算を実行する方法に関する多くの有用な情報を見つけましたが、Linux / Terminalに文字が表示される特定の回数でテキストファイルを並べ替える方法はありますか?ライン?

たとえば、次のようになります。

baseball
aardvark
a man a plan a canal panama
cat
bat
bill

文字「a」が表示される回数に基づいてソートすると、次のような結果が得られます。

a man a plan a canal panama
aardvark
baseball
cat
bat
bill

「a」がそれぞれ1回出現する「cat」と「bat」については、同じ数の行順が変わっても構いません。

ベストアンサー1

これらの操作に対する一般的なアプローチは、awkまたはperl...を使用して関心のある指標を計算し、行の前に追加し、それをソートされた出力に提供し、ソートされた出力sortから測定項目を削除することです。

awk '{print gsub("a","a"), $0}' < file | sort -rn | cut -d' ' -f2-

おすすめ記事