gpt4 book ai didi

sed - 如何自动创建目录树列表的 README.md markdown

转载 作者:行者123 更新时间:2023-12-04 01:55:55 29 4
gpt4 key购买 nike

我想自动创建带有目录树列表的 Markdown ,以便在每个目录中的 GitHub 等在线存储库中显示。

因此,鉴于我将使用 Linux tree command可以使用 brew install tree 安装在 MacOS X 上(详见 here),我想出了这个解决方案:

tree --dirsfirst --noreport -I README.md > README.md;sed -i '' '1s/^/```/' README.md;echo \ >> README.md; sed -i '' -e '$s/$/```/' README.md

哪里第一 sed -i '' '1s/^/```/' README.md正在添加 ```字符 – 见 Mastering (Github) Markdown有关支持的 Markdown 的详细信息。

回声 echo \ >> README.md;正在添加换行符。请注意,我没有使用 sed等效 sed -i '' -e '$a\' filename因为这仅在由于 $a 不存在时才添加换行符模式(见 here)。

而最后 sed -i '' -e '$s/$/```/' README.md正在添加尾随 ```到文件。
tree命令 tree --dirsfirst --noreport -I README.md将排除一些模式,将目录放在首位,忽略报告文件和目录计数。

结果将类似于以下内容:
```.
├── bin
│   ├── Debug
│   │   ├── SampleLibrary.jar
│   │   ├── cooper.jar
│   │   ├── sugar.data.jar
│   │   ├── sugar.jar
│   │   └── swift.jar
│   └── Release
│   ├── SampleLibrary.jar
│   ├── cooper.jar
│   ├── sugar.data.jar
│   ├── sugar.jar
│   └── swift.jar
├── obj
│   ├── Debug
│   │   └── Android
│   │   ├── ClassLibrary2.elements.FilesWrittenAbsolute.txt
│   │   └── samplelibrary.jar
│   └── Release
│   └── Android
│   ├── ClassLibrary2.elements.FilesWrittenAbsolute.txt
│   └── samplelibrary.jar
├── ClassLibrary2.elements
└── ClassLibrary2.elements.user
```

你可以看到这个 markdown README.md here .

此解决方案效率不高,仅限于 -I tree 的模式选项过滤掉不需要的目录(比如构建目录)或文件名等。更新现有的 README.md 也不能正常工作。 Markdown 。

该解决方案应该适用于 MacOS X(其中 sed 与 Linux 上的有所不同)。

最佳答案

获取源代码标记的一种方法是将所有内容缩进四个空格:

tree --dirsfirst --noreport -I README.md | sed 's/^/    /' > README.md

按照你的方式来做,添加一个新的第一行和最后一行 ```在每个,我们可以做
tree --dirsfirst --noreport -I README.md |
sed '1s/^/```'$'\n''/;$s/$/'$'\n''```/' > README.md

其中在替换字符串中插入换行符是通过 C 样式转义完成的。或者,我们可以使用 "$(printf '\n')" :
tree --dirsfirst --noreport -I README.md |
sed '1s/^/```'"$(printf '\n')"'/;$s/$/'"$(printf '\n')"'```/' > README.md

这些都应该与 macOS 上的 sed 一起使用。

使用 GNU sed,它会更简单一点:
tree --dirsfirst --noreport -I README.md |
sed '1s/^/```\n/;$s/$/\n```/' > README.md

关于sed - 如何自动创建目录树列表的 README.md markdown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36321815/

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