Misalkan saya punya file di harddisk saya yang memiliki ekstensi sebagai .md
.
Saya ingin mengkonversi semua file-file ke .html
melalui find
dan -exec
pilihan.
Perintah untuk mengonversi file penurunan harga ke html adalah
markdown readme.md > readme.html
Saya mencoba menggunakan sesuatu seperti:
find / -name "*.md" -type f -exec markdown {} > {}.html \;
Tentu saja, hal di atas tidak berhasil. Jadi, bagaimana saya melakukannya hanya dengan menggunakan find
dan exec
?
Jawaban:
Anda perlu mengutip sekitar konstruk yang mengandung
>
karena karakter khusus shell, seperti ini:Ini juga akan mengganti nama file sehingga Anda berakhir dengan
foo.html
alih - alihfoo.md.html
:sumber
{}
di akhir di kedua perintah? Juga, dalam perintah kedua, sulit untuk mengikuti bagi saya tentang apa yang terjadi? Saya tidak mengerti${0%.md}/.html
bagian itu.${0%.md}/.html
.{}
adalah argumen input untuksh -c
string, dan apakah diakses sebagai$0
. Perintah yang Anda tidak mengerti strip.md
dan menambahkan.html
. Anda mungkin benar dengan lolos dari.
.md
dan menambahkan.html
tetapi saya ingin tahu lebih banyak tentang hal itu. Bisakah Anda mengarahkan saya ke wiki / doc yang menjelaskan hal ini?Cara untuk mencapai apa yang telah Anda tulis adalah untuk penggunaan
markdown
's-o
pilihan, yang menentukan nama file output, yaituMelakukannya dengan cara ini menghindari memulai shell baru hanya untuk menjalankan penurunan harga.
Sayangnya, seperti yang ditunjukkan Bernhard, melakukannya dengan cara ini memberi Anda file yang dinamai
file.md.html
bukanfile.html
, jadi pendekatan terburu-buru lebih tepat di sini.sumber
markdown
tidak punya-o
pilihan. Saya memeriksa ulang sebelum berkomentar.pandoc -f markdown -t html -o...
.