重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

ファイルの拡張子だけを表示したい

こんにちは。
Linuxのコマンドについて質問です。

とあるフォルダ配下にあるファイルをfindコマンドを使い検索し、そのフォルダ配下のファイルがどのような拡張子をもっているかを表示するコマンドを考えております。

たとえば、

/home/hoge/abc.xml
/home/def.java
/ghi.html
/jkl.html

というディレクトリとファイルがあったとして、ルートディレクトリからfindで検索をかけた場合、

.xml
.java
.html

というように拡張子だけが抜き出されて表示される(重複した拡張子はのぞく)ようなコマンドです。

A 回答 (1件)

拡張子がある、ということは、ピリオドを含むということで


-name "*.*"

意味があるものなら、対象はファイルということになるでしょう
-type f

find だけでは処理しずらいので、sedで拡張子だけにして、sortの-uオプションで並び換え+重複の削除をおこないます

find 検索かけたいディレクトリ -name "*.*" -type f | sed 's/.*\(\.[^.]*\)$/\1/' | sort -u
    • good
    • 0
この回答へのお礼

早々のレスポンスありがとうございます!
理想どおりの結果を得ることが出来ました。

丁寧な解説付きで非常に助かりました!

お礼日時:2010/03/25 09:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!