我想把一个父目录的所有目录名都写在一个列表中,我使用tree命令和jq来实现这个。
这就是我目前掌握的情况:
directories_found=$(tree -J -d -L 1 | jq -c '.[0].contents | map(.name)').map(.name)
树命令在管道之前返回:
directories_found=[{"type":"directory","name": ".","contents":[ {"type":"directory","name":"AppBackend","contents":[ ]}, {"type":"directory","name":"list-folder-action","contents":[ ]} ]}, {"type":"report","directories":2} ]
然后,在应用jq之后,我看到的输出是:
["AppBackend","list-folder-action"]
看起来很棒。但是我想编辑这些值,同时保持列表结构。
我的目标是在每个元素之前添加一段文本,如下所示:
["example/AppBackend","example/list-folder-action"]
我才刚开始用jq,怎么会这样呢?
1条答案
按热度按时间epggiuax1#
作为对@pmf答案的补充,也许值得一提的是,你可以在命令行中指定前缀,而且,如果你想保持树形结构,你可以这样运行jq: