将字符串数组从curl转换为文件中的新行

时间:2019-01-26 05:34:14

标签: bash curl

呼叫curl localhost:8080/api会返回类似["test1, "test2", "test3"]

我想将其转换为:

test1
test2
test3

然后将其添加到文件中

我正在尝试类似的事情:

curl localhost:8080/api | printf "%s\n" >>> file.txt

3 个答案:

答案 0 :(得分:3)

使用从命令行解析和处理JSON数据。

$ echo '["test1", "test2", "test3"]' | jq -r '.[]'
test1
test2
test3

答案 1 :(得分:1)

您可以试试,而不是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)

如果由于某种原因您无法安装,则可以尝试以下操作:

$ 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