将bash`ls`输出转换为json数组

是否可以使用bash脚本将的输出格式化lsjson数组?为了成为有效的json,目录和文件的所有名称都必须用双引号引起来,并用逗号分隔,并且整个内容都必须用方括号括起来。即转换:

jeroen@jeroen-ubuntu:~/Desktop$ ls

foo.txt bar baz

[ "foo.txt", "bar", "baz" ]

编辑:我非常喜欢可以在所有Linux服务器上使用的东西;因此,宁可不依赖python,而要使用纯bash解决方案。

回答:

使用perl作为编码器;保证它不会是越野车,到处都是,而且有了管道,它还是相当干净的:

ls | perl -e 'use JSON; @in=grep(s/\n$//, <>); print encode_json(\@in)."\n";'

以上是 将bash`ls`输出转换为json数组 的全部内容, 来源链接: utcz.com/qa/409292.html

回到顶部