一致した結果の特定の部分を変数として保存し、後で置換に使用したい。事前に必要な変数を見つけるのではなく、これをワンライナーに保ちたいと思います。
Apache を構成し、mod_rewrite を使用する場合、次のように、パターンの特定の部分を変数として使用するように指定できます。
RewriteRule ^www.example.com/page/(.*)$ http://www.example.com/page.php?page=$1 [R=301,L]
括弧内に含まれるパターン マッチの部分は、後で使用するために $1 として保存されます。したがって、URL が だった場合はwww.example.com/page/home
、 に置き換えられwww.example.com/page.php?page=home
ます。したがって、一致の「ホーム」部分は、括弧内のパターンの一部であるため、$1 に保存されました。
コマンドでこの機能のようなものが欲しいのですがsed
、SQL ダンプ ファイル内の多くの文字列を自動的に置き換えて、各テーブルを作成する前に存在する場合はテーブルを削除するコマンドを追加する必要がありますが、これを行うにはテーブル名を知る必要があります。ダンプ ファイルには次のようなものが含まれます。
...
CREATE TABLE `orders`
...
次のようなものを実行する必要があります。
cat dump.sql | sed "s/CREATE TABLE `(.*)`/DROP TABLE IF EXISTS $1\N CREATE TABLE `$1`/g"
次の結果を取得します。
...
DROP TABLE IF EXISTS `orders`
CREATE TABLE `orders`
...
sed
私がやろうとしていることの論理的な例として、コマンドで mod_rewrite 構文を使用しています。
助言がありますか?