カレントディレクトリ配下の「指定拡張子ファイル」内に「指定文字列」が含まれているものを検索する

Linuxコマンドfind

目次一覧

 状態:-  閲覧数:211  投稿日:2019-05-15  更新日:2019-05-15
カレントディレクトリ配下の「テキストファイル」内に「hoge」が含まれているものを検索する / カレントディレクトリ配下の「phpファイル」内に「ad-728_90_shinobi」が含まれているものを検索する

カレントディレクトリ配下の「テキストファイル」内に「hoge」が含まれているものを検索する / カレントディレクトリ配下の「phpファイル」内に「ad-728_90_shinobi」が含まれているものを検索する

 閲覧数:124 投稿日:2019-05-15 更新日:2019-05-17 

カレントディレクトリ配下の「テキストファイル」内に「hoge」が含まれているものを検索する


$ find . -name '*.txt' -print0 | xargs -0 grep hoge

カレントディレクトリ配下の「phpファイル」内に「ad-728_90_shinobi」が含まれているものを検索する


$ find . -name '*.php' -print0 | xargs -0 grep ad-728_90_shinobi

「-type f」を指定する方が良い
$ find /var/www/html -type f -name '*.php' -print0 | xargs -0 grep ad-300_250-list-a8

$ find /var/www/html -type f -name '*.php' -print0 | xargs -0 grep ad-300_300-pc-mix
$ find /var/www/html -type f -name '*.php' -exec sed -i 's/ad-728_90_rakuten\.php/ad-728-90-rakuten\.php/g' {} +



【Linux】ファイル内に含まれる文字列を検索するコマンド

findとsedで置換実行したら、置換実行されていないファイルの更新日時も変更されるのですが
find . -type f -name と find . -name について
$ find . -type f -name '*.php' -exec sed -i 's/a\.php/b\.php/g' {} + で何を置換したかを表示するには?


$ find /var/www/html -type f -name '*.php' -exec sed -i 's%/var/www/html/lib/trust_path_allproject/ad/amazon/css/widget-160-600.php%/var/www/html/lib/trust_path_allproject/ad/ad-300-160-rakuten.php%g' {} +

.にはエスケープが必要。但し、上記のように.エスケープしなくても正常置換される場合もある。理由不明
$ find /var/www/html -type f -name '*.php' -exec sed -i 's%/var/www/html/lib/trust_path_allproject/ad/amazon/javascript/widget-120-600\.php%/var/www/html/lib/trust_path_allproject/ad/ad-300-160-rakuten\.php%g' {} +
find と sed で複数ファイルを一括置換する場合、「渡す文字列の長さ」と「結果が表示されるまでの速度」には関係がありますか?




ファイル拡張子などで条件を絞って全置換するためには、「grep」ではなく「find」を使用

findコマンド使用例



類似度ページランキング
順位 ページタイトル抜粋
1 CentOSで、指定ディレクトリ以下の「ファイル内容」を全文置換 48
2 指定ディレクトリ内の「特定拡張子のファイル」のみ削除 / find の -delete オプションを使用 42
3 CentOSで「指定ディレクトリ下層に複数存在する指定ディレクトリ」内にある全ファイルを削除するシェルスクリプト 39
4 パスの最後のディレクトリ名・ファイル名を抽出 35
5 CentOSで、指定ディレクトリ以下の「ディレクトリ名」の置換リネーム、「ファイル名」の置換リネーム、「ファイル内容」の全文置換 32
6 ファイル拡張子などで条件を絞って全置換するためには、「grep」ではなく「find」を使用 30
7 ドメイン変更に耐え得るディレクトリ構成へ変更 29
8 CentOS7コマンドは「/usr/bin/」もしくは「/usr/sbin/」内に格納されているファイルを実行している 28
9 ディレクトリへ設定する特殊なアクセス権 27
10 「クレジットカードによる即時決済」を実施すると、10分近く放置される 27
11 CentOS7再起動時に、/run 直下に作成したディレクトリを削除しないようにする 27
12 cronで定期実行しているphpファイルを、コマンドライン経由で即時実行する 26
13 ドメイン取得業者が提供している「ドメインの特徴を解説している(宣伝)記事」を過度に信用しない方が良いかも 24
14 ディレクトリ ` 24
15 PHPをインストールすると、どうなるの? 24
16 拡張子「.html」でPHPスクリプト実行 24
17 ルートドメインでのみサイトが表示されない理由は、お名前.com の DNS設定 を誤っていたから 23
18 ファイルサイズ0の画像をアップロードしてしまうと上書き出来ない 23
19 7回目-6.Nginx 1.12.2 インストール失敗。インストール自体には成功しているが、リポジトリ未指定のため、後でトラブル発覚 23
20 解約申請して以降、「使用できるソケットを待機しています」が頻繁に表示されるようになって困っているのですが、何か制限をかけていますか? 23
2021/9/18 22:08 更新
週間人気ページランキング / 9-11 → 9-17
順位 ページタイトル抜粋 アクセス数
1 PHPのmb_send_mail関数でメール送信できない | メール処理システム 28
2 Nginx設定。エラーログレベル | Nginx(Webサーバ) 26
3 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 12
4 さくらVPS0 11
4 PHP Version 7.1.2 php-mecabエクステンション対応 / PHP 7.0.14 からのアップグレード  | MeCab(形態素解析) 11
4 ソースからビルドしたPython 2.7.3 アンインストール失敗 | Python(プログラミング言語) 11
5 touch コマンド / viコマンド。新規ファイル作成時の違い | Linuxコマンド 10
6 PHPファイルでchmodエラー | PHP(プログラミング言語) 7
7 php-mysql インストールできない 6
7 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 6
7 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応 6
7 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 6
8 さくらVPSへは「http://localhost」でアクセス出来ない | さくらVPSにてWebサービス運営(さくらVPS) 5
8 CentOSでcpコマンド動作確認するためには、Control + T ではなく、 -v オプションを使用 | cp(Linuxコマンド) 5
8 HTTPレスポンスヘッダ | HTTP(通信プロトコル) 5
8 mailxとは? / インストール済か確認 / mailコマンドの実体はmailxコマンド 5
9 tar: これは tar アーカイブではないようです 4
9 Postfix | メール処理システム 4
9 499 (Request has been forbidden by antivirus) | HTTP(通信プロトコル) 4
9 imagick 3.1.2 を imagick 3.2.0RC1 へ pecl アップデート | ImageMagick(ソフトウェアスイート) 4
2021/9/18 1:01 更新