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