呼叫curl localhost:8080/api
会返回类似["test1, "test2", "test3"]
我想将其转换为:
test1
test2
test3
然后将其添加到文件中
我正在尝试类似的事情:
curl localhost:8080/api | printf "%s\n" >>> file.txt
答案 0 :(得分:3)
使用jq从命令行解析和处理JSON数据。
$ echo '["test1", "test2", "test3"]' | jq -r '.[]'
test1
test2
test3
答案 1 :(得分:1)
您可以试试xidel,而不是curl
和 jq
。它是一个 JSON 解析器(不同于 sed
!),它可以打开各种在线资源。你可以试试:
xidel -s "localhost:8080/api" -e '$json()' > file.txt
或
xidel -s "localhost:8080/api" -e 'file:write-text-lines("file.txt",$json())'
答案 2 :(得分:0)
如果由于某种原因您无法安装jq,则可以尝试以下操作:
$ echo '["test1, "test2", "test3"]' | sed 's/[]\[",]/\n/g' | grep -v '^\ *$'
test1
test2
test3
即:
$ curl localhost:8080/api | sed 's/[]\[",]/\n/g' | grep -v '^\ *$' >>> file.txt