我正在尝试使用
我的jq 1.6 playground中显示了
从我的Mac终端上,我的结果是:
但是这个(jq)输出(如上所示)不是我需要的... 我需要没有周围带有引号("")的值。根据
jq
来重新格式化ffprobe
生成的JSON输出中的一些元素为csv
。我已经接近成功,但在一个细节上遇到了困难:我的jq 1.6 playground中显示了
ffprobe
的输出
我在MacOS Mojave(10.14.6)上运行最近下载的jq
二进制文件(jq --version
=> jq-1.6
)从我的Mac终端上,我的结果是:
$ fn_ffprobeall | jq -r '[.format.filename,.format.format_name,.format.tags.album_artist] | @csv'
"01 Jubilee.flac","flac","Bill Charlap Trio"
# where fn_ffprobeall is a function defined as:
fn_ffprobeall () { ffprobe -i "01 Jubilee.flac" -hide_banner -v quiet -print_format json -show_format -show_streams; }
但是这个(jq)输出(如上所示)不是我需要的... 我需要没有周围带有引号("")的值。根据
--raw-output / -r
的文档:
此外,似乎使用使用此选项时,如果过滤器的结果是字符串,则该字符串将直接写入标准输出,而不是格式化为带引号的JSON字符串。这对于使jq过滤器与非基于JSON的系统通信非常有用。
@tsv
而不是 @csv
会执行正确操作,因为引号将被剥离。我认为可以做一些额外的工作,以将 tab
字符替换为 ,
,但我想知道是否遗漏了某些内容,在回退到该方法之前。
jq
的文档也能这么清晰 :) 另外,我试图使用 Excel 将字符串作为现有 CSV 文件中的一行添加。 - user5395338