我喜欢听sky.fm,我用curl查询媒体信息
我现在用的是:
curl -s curl http://127.0.0.1:8080/requests/status.json | grep now_playing
返回:
"now_playing":"Cody Simpson - On My Mind"
我想要的是:
Cody Simpson - On My Mind
也许更好,将艺术家和标题放在单独的变量中。
artist: Cody Simpson
title: On My mind
解决方案
#!/bin/bash
a=`curl -s http://127.0.0.1:8080/requests/status.json | grep -Po '(?<=now_playing":")[^"]+'`
artist=$(echo $a | awk -F' - ' '{print $1}')
title=$(echo $a | awk -F' - ' '{print $2}')
echo $artist
echo $title
最佳答案
您可以使用 cut 来完成此操作。
curl -s http://127.0.0.1:8080/requests/status.json | \
grep 'now_playing' | cut -d : -f 2 | sed 's/"//g'
剪切命令可帮助您选择字段。这些字段由分隔符定义,在本例中为 ':'
。 -d
选项指定分隔符,-f
选项指定我们要选择的字段。
sed 部分只是删除引号。
关于bash - 在 bash 中只获取字符串的一部分的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15703822/