Saya rutin menulis catatan saya di markdown
dalam struktur direktori yang kompleks seperti ini.
~/doc/doc.md
~/doc/math/linearAlgebra/linearAlgebra.md
~/doc/math/linearAlgebra/numericalAnalysis.md
~/doc/linux/tmux/tmux.md
~/doc/linux/newsbeuter/newsbeuter.md
Struktur direktori ini terus berkembang dan setiap direktori memiliki berbagai file lain selain dari *.md
file. Saya memiliki skrip shell yang secara rekursif mencari markdown files
di direktori induk doc/
dan menghasilkan html
dan pdf
file menggunakan pandoc
. Saya juga membuat doc.md
file (melalui skrip) yang berisi daftar semua *.md
file. Saat ini saya menggunakan,
find ~/doc/**/*.md
untuk menghasilkan daftar ini. Saya ingin mengurutkannya menurut struktur direktori agar mudah dibaca seperti ini:
math
linearAlgebra
linearAlgebra.md
numericalAnalysis.md
linux
tmux
tmux.md
newsbeuter
newsbeuter.md
Jika fp=/home/user/doc/linux/tmux/tmux.md
adalah contoh path lengkap dari sebuah file, lalu ${${fp%/*.md}#/home/user/doc/}
memberi saya linux/tmux
. Saya dapat memprosesnya lebih lanjut untuk mengisolasi linux
dan tmux
dll. Tapi saya tidak tahu algoritma untuk membuat struktur direktori. Saya pikir ini akan membutuhkan penggunaan array untuk menyimpan struktur direktori lengkap untuk setiap file dan kemudian menyortirnya.
Jika skrip Shell sudah ada untuk ini, beri tahu saya. Jika tidak, petunjuk tentang kemungkinan algoritme dipersilakan.
Jawaban yang Diterima:
Jika semua yang ingin Anda lakukan adalah menghasilkan output berformat bagus dari semua .md
file, tree
harus melakukan apa yang Anda inginkan:
tree -P '*.md' /home/user/doc
Tambahkan -A
untuk garis cantik, ia juga melakukan hal-hal menarik seperti output ke HTML/XML.