2017年7月5日水曜日

linux CentOS 複数フォルダのファイル群からテキスト文字を検索する。串刺し検索 WindowsではDevasを使っている。

複数ディレクトリのファイル群からテキスト文字を検索するのにWindowsではDevasを使っている。秀丸でgrepを使えばフォルダの串刺し検索ができるのを後から知った。

Linux系では、コマンドで

find ./ -type f -print | xargs grep 検索文字

find . -name "*.php" | xargs grep 検索文字

-type f ディレクトリではなくファイルを探す。(-type d ファイルではなくディレクトリ)
-printはなくてもいい。
xargs 受け取ったファイルの一覧を次のコマンドへ渡す。
grep 受け取ったファイルの中から指定された文字列のある行を抜き出す。

---------------------------------------------------------------------------
xargsの使い方。
(便利そうな使い方を集めた。)

hogedirディレクトリ内のファイルを、/tmpディレクトリ以下に拡張子「.bup」を付けてコピーする。
$ ls hogedir | xargs -I{} cp hogedir/{} /tmp/{}.bup


180日以上更新されていないファイルを削除する
 find . -mtime +180 -type f | xargs rm

ディレクトリに次のファイルが存在する場合。
Filea
Fileb
Filec
FILE と書いた部分が、実際のファイル名に変換される。
$ ls | xargs -I FILE echo "FILE hogehoge"

File_A hogehoge
File_B hogehoge
File_C hogehoge

0 件のコメント:

コメントを投稿