我正在尝试解析ncmpcpp的输出以获取艺术家和曲目标题。
ncmpcpp --now-playing
的输出采用
(MM:SS) %ARTIST% - %TRACKTITLE%
示例:
(4:46) A Perfect Circle - Imagine
使用linux上提供的传统管道工具(head,sed,awk,grep)如何摆脱括号中的信息并解析其余部分?
我尝试过使用awk,但是因为乐队名称可以包含空格而无效,所以%ARTIST%可以被认为是几个参数。
答案 0 :(得分:1)
注意 - 现在播放需要额外的参数 - 输出字符串的格式,所以你基本上需要调用ncmpcpp --now-playing "%a - %t"
(或类似的)来获得你想要的东西。
答案 1 :(得分:0)
如果您的艺术家姓名包含连字符,则会失败,但依赖连字符作为艺术家和标题之间的分隔符的任何内容都将失败
echo "(32:32) Album artist - This is the title - it's hyphenated" |
awk 'match($0, /^\([0-9]{1,2}:[0-9]{2}\)\s([^-]*)\s-\s(.*)/, r) {print r[1];print r[2]}'
输出:
Album artist This is the title - it's hyphenated
修改强>
我可能误解了你的问题 - 如果你不需要在不同领域中的艺术家和头衔,只需用它来剥夺时间:
echo "(4:46) A Perfect Circle - Imagine" | sed -r 's/^\([0-9]{1,2}:[0-9]{2}\)\s//'
输出:
A Perfect Circle - Imagine