2013-08-26 47 views
1

我有嘗試捕獲構建/部署日誌的輸出,並使用吉拉的REST API和捲曲它們插入到吉拉票bash腳本:轉換大量文本塊JSON塊

curl -v -X POST \ 
-H "Content-Type: application/json" \ 
--data "@header.json" \ 
--data "@log.txt" \ 
--data "@footer.json" \ 
-H "Authorization:Basic [email protected]#" \ 
https://companyname.jira.com/rest/api/latest/issue/FOO-1234/comment 

我的問題是該日誌包含所有JSON令牌的方式,這會導致插入失敗。有沒有辦法從BASH清除發佈前的文本blob以逃避所有非法字符?或者說「不要在這個塊中解析任何東西」或類似的方法?最壞的情況下,我會寫一些非常可怕的AWK。

回答

0

事實證明,我需要轉義的只是引號,並將換行符轉換爲\ n。我使用了以下sed動作:

sed -inplace 's/\"/\\\"/g' log.txt 
sed -inplace ':a;N;$!ba;s/\n/\\n/g' log.txt 
0

曾幾何時,我使用這段代碼片段來使用curl發送POST數據。

urlquote() { 
    echo -ne "$1" | xxd -plain | tr -d '\n' | sed 's/\(..\)/%\1/g' 
} 

它與unicode的東西,以及很好的作品。也許這會有所幫助。