「カレントディレクトリの中のファイルに使われている『拡張子』の種類と数を調べたい」といった用途には、以下のようなワンライナーが使えます。 for i in *; do echo .${i#*.}; done | sort | uniq -c さきに紹介した変数展開 ${…#…} を使ってカレントディレクトリの各ファイル( * )の『拡張子』部分を取り出し、パイプを使って外部コマンドの「 sort | uniq -c」にわたしています。 これでも動きますが、このままではディレクトリや拡張子のないファイルもソートされ(さらに、よけいな「.」が付けられたうえで)、表示されてしまいます。そこで、これらのファイルを処理対象に含めないようにするならば、たとえば以下のような表現が使えます。 for i in *; do if [ ! -d $i ] && [ -z "${i%%*.*}" ]; then