2011-10-18 26 views
0

我有大量的JSON數據可以通過CURL發佈到數據庫。但是數據庫要求JSON的開始和結束以某種方式進行格式化。爲了不通過進入每一個文件並預先添加和追加行來調整文件的大數據集......我想簡單地在文件周圍的命令行中指定額外的開始和結束文本。我不認爲通過腳本編輯文件是一個猶太教的解決方案,直接混淆這種原始數據流感覺不對。如何將curd中的cmd行和文件數據拼湊在一起?

相反,我發現下面的混搭要做到這一點一個體面的方式:

curl -d "prepend_string`cat filename.json`append_string" \ 
-X POST http://localhost:5984/database/_bulk_docs \ 
-H "Content-Type: application/json" 

但是這有它的侷限性,因爲在上述情況下,所有的數據將被帶入到從命令行文件,然後發佈。由於真正文件是相當大的,任何人都會遇到這樣的錯誤:

-bash: /opt/local/bin/curl: Argument list too long 

所以,捲曲,是它在某種程度上可以混搭CMD線和文件數據,使得他們獲得成功發佈在一起(由捲曲)像三個獨立的部分?

#(this is make believe syntax) 
-d "prepend_string" + @filename.json + "append_string" 

回答

3

使用-d @filename從一個文件中讀取:

curl www.example.com -d @mypostdata.txt 

或者使用標準輸入:

echo "Beginning"$(cat mypostdata.txt)"End" | curl www.example.com -d - 

或者使用命名管道...

相關問題