从BASH中的变量中删除%0D

时间:2013-11-25 05:03:51

标签: bash wget

我正在尝试这个:

token=`curl -I --header "X-Auth-User: user@user.com" --header "X-Auth-Key: XXXXXXXXXXXXXXXXXXXXXX" api.server.com | grep -Fi X-Auth-Token | awk -F" " '{ print $2}'`

/usr/bin/wget --accept .jpg,.jpeg -p "https://api.server.com/v1/stats/1/graph?callback=jQuery171027000000144289315_1380000003353&mnum=1&res_type=cpu&g_type=6h&graph_type=img&full=1&w=515&h=150&X-Auth-Token=$token" -O "image.jpg" || rm "image.jpg"

但我的令牌结果是:

https://api.server.com/v1/stats/1/graph?callback=jQuery171027000000144289315_1380000003353&mnum=1&res_type=cpu&g_type=6h&graph_type=img&full=1&w=515&h=150&X-Auth-Token=SERVER_018d8100000000001d1b817f7d58a6%0D

而不是:

https://api.server.com/v1/stats/1/graph?callback=jQuery171027000000144289315_1380000003353&mnum=1&res_type=cpu&g_type=6h&graph_type=img&full=1&w=515&h=150&X-Auth-Token=SERVER_018d8100000000001d1b817f7d58a6

如何删除%0D(回车)?

3 个答案:

答案 0 :(得分:29)

您可以将| tr -d '\r'添加到curl管道以去除任何回车。

答案 1 :(得分:1)

有一个名为dos2unix的实用程序。您可能必须安装它。或使用翻译

tr -d '\r' < input > output

EDIT 找到一篇讨论几个选项的帖子: Remove carriage return in Unix

答案 2 :(得分:0)

我通过管道sed解决了这个问题。我已经在我的管道中使用sed所以它是有道理的。

cmd | sed 's/\r//g'