基本的な検索/置換を実行する小さなshスクリプトを作成しようとしていますが、1つの小さなバリエーションが含まれていますが、間違った方法で実行しているかどうか疑問に思います。
ここにいる古い文字列
mysql_fetch_array($foo)
これは何ですか?しなければならない
$foo->fetch_array()
今簡単な部分は次のとおりです。
find . -type f -name "*.php" -exec sed -i'' -e 's/mysql_fetch_array(/->fetch_array(/g' {} +
$foo
しかし、括弧から取り出して前方にスライドさせる方法がわかりません...sed
同じ正規表現でこれを行いますか...変数に保存して再構築しますか?この問題を解決する最も効率的な方法は何ですか?
いろいろ試してみたけど別れないんですよwwwww$
精神が完全疲れちゃいましたね!
編集する
私が必要だということに注意してください。マッチ mysql_fetch_array
特に - OPに明記していないので申し訳ありません。
ベストアンサー1
find . -type f -name "*.php" -exec sed -i -e 's/^.*mysql_fetch_array(\$\([^)]*\))/$\1->fetch_array()/' {} \;