私は定期的にmarkdownでメモを書きます このような複雑なディレクトリ構造で。
~/doc/doc.md
~/doc/math/linearAlgebra/linearAlgebra.md
~/doc/math/linearAlgebra/numericalAnalysis.md
~/doc/linux/tmux/tmux.md
~/doc/linux/newsbeuter/newsbeuter.md
このディレクトリ構造は拡大し続けており、各ディレクトリには*.md以外にもさまざまなファイルがあります。 ファイル。 markdown filesを再帰的に検索するシェルスクリプトがあります 親ディレクトリのdoc/ htmlを生成します およびpdf pandocを使用したファイル 。 doc.mdも作成します すべての*.mdのリストを含むファイル(スクリプトを介して) ファイル。現在使用しています
find ~/doc/**/*.md
このリストを生成します。次のように簡単に閲覧できるように、ディレクトリ構造に従って並べ替えたいと思います。
math
linearAlgebra
linearAlgebra.md
numericalAnalysis.md
linux
tmux
tmux.md
newsbeuter
newsbeuter.md
fp=/home/user/doc/linux/tmux/tmux.mdの場合 はファイルのフルパスの例であり、${${fp%/*.md}#/home/user/doc/} linux/tmuxをくれます 。さらに処理してlinuxを分離できます およびtmux など。しかし、ディレクトリ構造を作成するためのアルゴリズムはわかりません。これには、各ファイルの完全なディレクトリ構造を格納し、それを並べ替えるために配列を使用する必要があると思います。
これに対するシェルスクリプトがすでに存在する場合は、私に知らせてください。それ以外の場合は、可能なアルゴリズムへのポインタを歓迎します。
承認された回答:
あなたがしようとしているのがすべての.mdの素敵なフォーマットされた出力を生成することだけなら ファイル、tree あなたが望むことを正確に行う必要があります:
tree -P '*.md' /home/user/doc
-Aを追加します きれいな線の場合は、HTML/XMLへの出力などの興味深いことも行います。