gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:17:18 28 4
gpt4 key购买 nike

是否可以使用 bash 脚本将 ls 的输出格式化为 json 数组?要成为有效的 json,目录和文件的所有名称都需要用双引号括起来,用逗号分隔,整个东西需要用方括号括起来。 IE。转换:

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

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

编辑:我非常喜欢能在我所有 Linux 服务器上运行的东西;因此,而不是依赖于 python,而是有一个纯 bash 解决方案。

最佳答案

如果您知道没有文件名包含换行符,请使用 jq:

ls | jq -R -s -c 'split("\n")[:-1]'

jq 标志的简短说明:

  • -R 将输入视为字符串而不是 JSON
  • -s 将所有行连接成一个数组
  • -c 创建一个紧凑的输出
  • [:-1] 移除输出数组中的最后一个空字符串

这需要 jq 1.4 或更高版本。如果它对你不起作用,试试这个:

ls | jq -R '[.]' | jq -s -c '添加'

关于linux - 将 bash `ls` 输出转换为 json 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10234327/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com