我有一個SQL文件,我嘗試使用AWK進行操作。我有以下行分裂我的SQL文件VALUES
,因爲我想處理這個領域之前和之後的文本不同。使用AWK處理選定的變量
原始文件看起來是這樣的:
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
周圍移除反引號,使得t帽子它看起來像這樣:
$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') ");
有沒有一種方法來操縱變量以這種單獨的方式?
在第一個變量中沒有單引號('''),您有反引號('''')。你確實說過,你的實際輸入「看起來像這樣」,所以你的發佈樣本輸入實際上不是你實際輸入的樣子嗎?請在所有重要方面發佈與您的實際投入完全相同的樣本投入。 – 2014-09-22 12:52:20
你說得很對,我現在編輯答案和問題 – JackalopeZero 2014-09-22 13:06:34