すべてのファイルからコード行を検索して削除する

すべてのファイルからコード行を検索して削除する

ディレクトリ内のすべてのファイルから3行のコードを検索して削除するのに役立ちます。

コードは次のとおりです

if ( file_exists( plugin_dir_path( __FILE__ ) . '/.' . basename( plugin_dir_path( __FILE__ ) ) . '.php' ) ) { 
    include_once( plugin_dir_path( __FILE__ ) . '/.' . basename( plugin_dir_path( __FILE__ ) ) . '.php' ); 
}

交換ではなく取り外すだけです。

どんなアイデアがありますか?

広告乾杯

ベストアンサー1

perl -0777 -i~ -pe "s{^\\Qif ( file_exists( plugin_dir_path( __FILE__ ) . '/.' . basename( plugin_dir_path( __FILE__ ) ) . '.php' ) ) { \E\n\Q    include_once( plugin_dir_path( __FILE__ ) . '/.' . basename( plugin_dir_path( __FILE__ ) ) . '.php' ); \E\n}\n}{}m" -- dir/*
  • 0777「フルルックモード」を有効にします。つまり、1行ずつ読み込むのではなく、ファイル全体をロードします。
  • -iファイルを「設定」に変更して、名前に追加されたバックアップを作成します~~
  • -p処理後に入力内容を印刷します。
  • このコードは単なる代替コードですが、ファイルs{}{}全体を読み込むときに3行を実行します。
  • Finalm修飾子は:の動作を変更して^文字列の先頭を一致させるのではなく、各行の先頭に一致させます。
  • 引用符の間にすべての内容が含まれる\Q...\Eため、特殊文字にバックスラッシュを追加する必要はありません。

findこれをサブディレクトリの再帰実行と組み合わせることができます。ただし、置換区切り記号を{}次のように変更する必要がありますfind -exec

find /dir -type f -exec perl -i~ -0777 -pe "s<^\\Qif ( file_exists( plugin_dir_path( __FILE__ ) . '/.' . basename( plugin_dir_path( __FILE__ ) ) . '.php' ) ) { \E\n\Q    include_once( plugin_dir_path( __FILE__ ) . '/.' . basename( plugin_dir_path( __FILE__ ) ) . '.php' ); \E\n}\n><>m" -- {} +

おすすめ記事