xargsとシェル文字列の操作とsed

xargsとシェル文字列の操作とsed

ディレクトリのファイル拡張子を再帰的に要約しようとしています。

find .| xargs -d "\n" -I@ echo "${@##.*}" | sort |uniq -c

ただし、これにより一連の空白行が表示されます。私が望むものではありません。

知っている:

find . -type f | sed 's/.*\.//' | sort | uniq -c私は似たような質問から来ましたが、なぜ私の式がうまくいかないのか疑問に思います。

答え1

見つかったすべてのファイルに対してこれを行うことができますfindfile

find . -exec file -b {} \; |cut -f1|sort|uniq -c

編集する

以下の@Ed-Nevileの説明に示すように、削除するとcutASCIIファイルの詳細が表示されます。

find . -exec file -b {} \; |sort|uniq -c

関連情報