我有一些插入語句,我想通過替換值來替換另一個環境。我的SQL INSERT語句看起來如下: -Bash原地替換文本
INSERT INTO TABLE (col1, col2, col3, col4, col5) VALUES ('1', '/var/tmp', 'xyz, mno, pqr', '123', '<dummy value>');
我想將它轉化成這樣的,有沒有空格柱之間的值(),它看起來像這樣之間留有: -
INSERT INTO TABLE (col1,col2,col3,col4,col5) VALUES ('1','/var/tmp','xyz,mno,pqr','123','<dummy value>');
什麼我已經試過到目前爲止是這樣的: -
echo "INSERT INTO TABLE (col1, col2, col3, col4, col5) VALUES ('1', '/var/tmp', 'xyz, mno, pqr', '123', '<dummy value>')" | awk -F'[()]' '{printf "%s(%s)%s(%s)", $1, $2, $3, gensub(".*\(","",gensub(" ", "", $4))}'
,所得輸出如下: -
INSERT INTO TABLE (col1, col2, col3, col4, col5) VALUES ('1', '/var/tmp', 'xyz, mno, pqr', '123', '<dummy value>'))
我被困在這裏。任何線索都會有幫助。
爲什麼不像'sed -E's /,/,/ g''? – Maroun
@MarounMaroun,我不知道這些空格是否會在單引號之間引導或結尾。 –
'sed'與正則表達式一起工作,用一個簡單的替換,你就完成了。試一試。 – Maroun