gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:26 24 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/21807521/

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