ディレクトリ内のすべてのファイルから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行を実行します。 - Final
m
修飾子は:の動作を変更して^
文字列の先頭を一致させるのではなく、各行の先頭に一致させます。 - 引用符の間にすべての内容が含まれる
\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" -- {} +