私は定期的に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への出力などの興味深いことも行います。