1
我有一個CSV,其中的值用分號分隔。 我需要將該CSV中的數據發送到MongoDB數據庫中的現有集合,這在實際上與這個問題無關。如何在sed中正確地轉義報價?
爲了方便,我將只使用一個樣本一行從CSV:
echo '1243;firstName' | sed "s:\([0-9]*\)\;\(.*\):mongo localhost/test --eval \\\\'db.test.update({_id\: \1}, {name\: \"\2\"})\\\\':" | xargs -I {} sh -c "{}"
MongoDB shell version: 2.2.0
connecting to: localhost/test
Thu Apr 4 22:50:10 ReferenceError: firstName is not defined (shell eval):1
的問題是,當查詢到達MongoDB的解釋,它的轉義。
我已經試過在每次報價前加3個反斜槓,但沒有任何改變。我應該如何正確地轉義引號,以便他們會留在那裏,直到查詢到達MongoDB解釋器?
安置自己的sed命令所需的輸出,而不是僅僅描述它。測試一下,如果sed產生那個輸出,MongoDB(不管那是什麼!)都會接受這個文本作爲輸入。 – 2013-04-04 21:01:59