2014-02-24 47 views
0

我要讓變量包含以下字符串
V1 =「從表名中選擇*其中id> 1000」發現有刺,如果比賽再複製線串起

現在我想轉換此選擇要刪除而是通過bash/ksh腳本。

比如當字符串「from」匹配的rest部分行復制到一個變量並且很容易轉換爲刪除語句時,如下行
delete從tablename其中id> 1000;

任何人都可以有這個想法。

回答

0

您可以用sed這樣的:

v1="select c1,c2 from tablename where id > 1000" 
sed '/select .* from /s/select .* from/delete from/' <<< "$v1" 
delete from tablename where id > 1000 
+0

實際上是選擇將要作爲參數傳遞給bash腳本,所以有時選擇幾列名也通過了時間看起來像v1 =「select c1,c2 from tablename where id> 1000」所以在sed之後它應該從tablename中刪除,其中id> 1000 – Rajnish

+0

所以你用'delete'從'select'選擇a,b,c, '? – anubhava

+0

我們如何替換,它是動態的,有些時候可能是單列名稱出現一些倍數。如從表名中選擇c1,其中id> 1000有時從表名中選擇c1,c2,其中id> 1000,有時選擇* from tablename where id> 1000 – Rajnish

0

如何:

sed 's/select .* \(from .*\)/delete \1/' sqlfile.txt