正規表現で指定されたファイルを抽出する方法
例えば、以下のようなファイルがあったとします。
. |-- 1.php |-- 2.php |-- apple.jpg |-- fuga.php |-- hoge.php |-- lib | |-- 01.php | |-- 02.php | `-- abc.php `-- orange.jpg
数字のファイルのみ抽出
カレントディレクトリのみを検索する場合は、 lsとegrepの組み合わせ。
下位のディレクトリまで検索する場合は、findを使えばうまくいきます。
カレントディレクトリのみを検索する
$ ls | egrep '[0-9]' # result 1.php 2.php
findで下位のディレクトリも検索の対象にする
$ find . -name '[0-9]*' #result ./2.php ./1.php ./lib/01.php ./lib/02.php
ls -Rでもできるんですけどね。
$ ls -R | egrep '[0-9]' # result 1.php 2.php 01.php 02.php
画像ファイルのみ抽出
$ ls | egrep '.jpg' # result apple.jpg orange.jpg
ディレクトリのみ抽出
$ ls | egrep '/$' # result lib/
数字のファイルのみ消す
抽出したファイルをまとめて消すことも簡単にできます。
$ ls | egrep '[0-9]' | xargs rm
下位ディレクトリのファイルも対象の場合は、findでできます。
find . -name '[0-9]*' | xargs rm