sed コマンドを使用したコードの検索と置換

sed コマンドを使用したコードの検索と置換

複数のファイルに(内部的に)PHPコードスニペットがあり、<? php ... ?>それを削除したいと思います。

コードを変数に入れてみました。

var="<?php [some code in here] ?>"

次に、次を実行します。

find . -type f -name '*.php' -exec sed "s|$var| |" {} \;

または

find . -type f -name '*.php' -exec sed -i 's/'"$var"'.*/'"$str"'/g' {} \;

(ここでstr = "")

これを行う方法はありますか?

ベストアンサー1

これを試してみますが、-iまず削除して正しく機能していることを確認してください。

var='echo rand(1, 10);'  # dummy code, change to whatever.
sed -i 's/<? php '"${var}"' ?>//' *.php

メモ:

  • コードは$var1行のコードと見なされます。
  • コードに一重'引用符が含まれている場合は、次のようにエスケープしてください\'
  • 上記では空白のバリエーションが問題にならないと仮定していますが、問題になることが多いです。

おすすめ記事