一尘不染

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

linux

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

jeroen@jeroen-ubuntu:~/Desktop$ ls
foo.txt bar baz

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

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


阅读 426

收藏
2020-06-03

共1个答案

一尘不染

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

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