Ich möchte Abschrift mit einem Verzeichnisbaum automatisch erstellen, um in Online-Repos wie GitHub in jedem Verzeichnis angezeigt werden.Wie automatisch erstellt README.md Markdown der Verzeichnisbaum Auflistung
So gegeben, dass ich werde die Linux tree
command verwenden, die auf MacOS X brew install tree
mit installiert werden können (here für Details), kam ich mit dieser Lösung aus:
tree --dirsfirst --noreport -I README.md > README.md;sed -i '' '1s/^/```/' README.md;echo \ >> README.md; sed -i '' -e '$s/$/```/' README.md
, wo die ersten sed -i '' '1s/^/```/' README.md
Voranstellen der ```
Zeichen – siehe Mastering (Github) Markdown für Details über unterstützte Abschriften.
Das Echo echo \ >> README.md;
fügt eine neue Zeile hinzu. Beachten Sie hier, dass ich nicht das sed
Äquivalent sed -i '' -e '$a\' filename
verwende, da dies nur eine neue Zeile hinzufügt, wenn es nicht existiert, aufgrund der $a
Muster (siehe here).
Während der letzte sed -i '' -e '$s/$/```/' README.md
der Datei einen nachlaufenden ```
hinzufügt.
Der tree
Befehl tree --dirsfirst --noreport -I README.md
wird einige Muster ausschließen, Verzeichnis zuerst setzen, Berichtsdatei und Verzeichniszählung ignorieren.
Das Ergebnis wird in etwa wie folgt sein:
```.
├── 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
```
Sie diesen Abschlag here README.md sehen kann.
Diese Lösung nicht so effizient ist und es beschränkt sich auf -I
Muster Optionen von tree
unerwünschte dirs, um herauszufiltern (wir Build-Verzeichnisse sagen) oder Dateinamen usw. Auch ist es nicht richtig ein vorhandenes README.md
Abschlags zu aktualisieren funktioniert.
Die Lösung sollte auf MacOS X funktionieren (wobei sed einige Unterschiede zu Linux hat).
Warum sich die Mühe Nachverarbeitung der Belichtungsreihe 'zu erhalten \ '\' \' 'Marker? Warum nicht einfach vorher und nachher? '{echo '\' \' \ ''; Baum ...; echo '\ '\' \ ''; }> README.md'? –