AWK を使用して操作しようとしている SQL ファイルがあります。VALUES
このフィールドの前後のテキストを別々に処理したいので、SQL ファイルを分割する次の行があります。
元のファイルは次のようになります。
INSERT INTO `drt_mig_user`.`parametric_object`(`id`, `active`, `priority`, `createdatetime`, `lastupdatedatetime`, `discriminator`) VALUES ('10085', '1', NULL, '2014-09-19 16:18:39', '2014-09-19 16:18:39', 'gate')
私のAWKコード:
cat file.txt | awk -F'VALUES' '{printf("$this->addSql(\"%sVALUES%s\");\n", $1, $2)}'
これが生成されます:
$this->addSql("INSERT INTO `drt_mig_user`.`parametric_object`(`id`, `active`, `priority`, `createdatetime`, `lastupdatedatetime`, `discriminator`) VALUES ('10085', '1', NULL, '2014-09-19 16:18:39', '2014-09-19 16:18:39', 'gate') ");
あとは、drt_mig_user を削除し、最初の変数全体からバッククォートを削除して、次の$1
ようにするだけです。
$this->addSql("INSERT INTO parametric_object(id, active, priority, createdatetime, lastupdatedatetime, discriminator) VALUES ('10085', '1', NULL, '2014-09-19 16:18:39', '2014-09-19 16:18:39', 'gate') ");
このように変数を別々の方法で操作する方法はありますか?