ディレクトリのすべての拡張機能を取得する:簡単。特定の拡張子のファイル数を取得する:簡単です。
しかし、すべてのファイル拡張子とそれぞれのファイル数を取得することは私にほのめかしています。
例えば。
+ dir
+ abc.txt
+ def.txt
+ abc.pdf
* def.pov
次のようなものが返されます:
.txt 2
.pdf 1
.pov 1
この演習の目的は、特定のディレクトリで人気のあるファイル拡張子を確認することです。
前もって感謝します
/var/cache$ Sudo find ./ -type f | grep -E ".*\.[a-zA-Z0-9]*$" | sed -e 's/.*\(\.[a-zA-Z0-9]*\)$/\1/' | sort | uniq -c | sort -n
1 .6
1 .cache
1 .noconf
1 .php
1 .sl
2 .bin
2 .el
2 .tdb
4 .baseA
4 .baseB
4 .dat
4 .DB
27 .db
221 .deb
ここに説明があります:
find ./ -type f
ディレクトリではなくファイルのみを検索
grep -E ".*\.[a-zA-Z0-9]*$"
拡張子付きのフィルターファイル
sed -e 's/.*\(\.[a-zA-Z0-9]*\)$/\1/'
パスとファイル名を削除し、拡張子のみを保存
sort | uniq -c | sort -n
sort、uniq、sort
Linux(gnu grep)を使用しているので、Perl RE(PCRE)を使用する良い機会です-P
およびgrepの-o
オプション。 @bindbnの答えを優れた候補として取り上げます。
find . -type f | grep -Po '\.([\w\d])*$' | sort | uniq -c | sort -n