【发布时间】:2014-07-29 18:29:16
【问题描述】:
最近我了解到 shairport(airplay 模拟器)现在创建了一个 fifo 文件,该文件以这种格式管道元数据:
artist=Justin Bieber
title=Baby
album=My World 2.0
artwork=cover-2de1df4b978034bcd789ea10b1111a.jpg
genre=Pop
comment=
我想将它发送到一个液晶显示器,但 我试图将其解析出来以显示以下内容:
Justin Bieber
Baby
My World 2.0
我尝试使用 awk 来获得上述结果,但如果有人对使用 sed、grep、perl 或其他任何东西有任何建议,我愿意接受!
无论如何,这是我迄今为止尝试过的一堆东西:
awk -F"=" '{print $2}'
让它显示:
Justin Bieber
Baby
My World 2.0
cover-2de1df4b978034bcd789ea10b1111a.jpg
Pop
差不多了,但我真的不需要展示艺术作品、流派和评论。
这是我用来过滤掉那些额外字段的命令:
awk '!/artwork=/ && !/genre=/ && !/comment=/ && /./'
要打印这个:
artist=Justin Bieber
title=Baby
album=My World 2.0
现在我只需要将两者结合起来,所以我尝试了这个(更不用说一堆其他变体了):
awk '!/artwork=/ && !/genre=/ && !/comment=/ && /./' && -F"=" '{print $2}'
但我得到与上面相同的结果:
artist=Justin Bieber
title=Baby
album=My World 2.0
我知道我遗漏了一些非常基本的东西,但我完全被卡住了。
【问题讨论】:
-
抱歉,我受不了:这是文件的第一行,
awk和所有其他喜欢音乐的脚本语言永远不会接受作为有效输入;) -
哈,我以为 stackoverflow 的人会从中受益。