面对一个简单要求的问题。
当我尝试这样做时,由于某种原因,我在第二行的文件中获得额外的前导空格。有没有办法配置jq不这样做?
代码:
output=`curl -v -k -H 'Content-Type: application/json' '<<URL>>' -d '<<PARAMS>>'`
csvOutput=`echo $output | jq --raw-output '.result .items[]|[.name,.key,.created,.updated]|@csv'`
echo $csvOutput >> out.csv
以下代码(全部在一行中)没有问题。但是我需要变量中的curl输出来执行一些检查,所以这个选项没有帮助。
echo "$(curl -v -k -H 'Content-Type: application/json' '<<URL>>' -d '<<PARAMS>>" | jq -r '.result .items[]|[.name,.key,.created,.updated]|@csv' >> out.csv
奇怪的是,当我从文件中读取json输出(从curl响应中获取)然后应用jq过滤器时,我没有看到问题。
cat response.json | jq -r '.result .items[]|[.name,.key,.created,.updated]|@csv' > out.csv
response.json(格式化):
{
"result": {
"total_items": 22,
"total_pages": 1,
"items_per_page": 1000,
"current_page": 1,
"items": [
{
"key": "1",
"name": "Name 1",
"created": "2016-12-20T08:51:13Z",
"updated": "2016-12-20T09:29:08Z"
},
{
"key": "2",
"name": "Name 2",
"created": "2016-12-20T08:51:13Z",
"updated": "2016-12-20T09:29:08Z"
},
{
"key": "3",
"name": "Name 3",
"created": "2016-12-20T08:51:13Z",
"updated": "2016-12-20T09:29:08Z"
}
]
},
"id": 1
}
答案 0 :(得分:2)