2011-12-14 57 views
2

我現在有一個很大很大的目錄中充滿了許多子目錄與同名的降價文件中的每個:轉換多個降價文件在多個目錄到HTML與腳本

/big-directory/sub-directory-name-1/sub-directory-name-1.md 

/big-directory/sub-directory-name-2/sub-directory-name-2.md 

/big-directory/sub-directory-name-3/sub-directory-name-3.md 

我想結束了這樣的:

/big-directory/sub-directory-name-1/sub-directory-name-1.md 
/big-directory/sub-directory-name-1/index.html 

/big-directory/sub-directory-name-2/sub-directory-name-2.md 
/big-directory/sub-directory-name-1/index.html 

/big-directory/sub-directory-name-3/sub-directory-name-3.md 
/big-directory/sub-directory-name-1/index.html 

我試着寫在OS X上一個shell腳本,將在每個文件運行multimarkdown,但我有困難,搞清楚如何使循環運行在子目錄中,而無需手動把它們全部進入腳本。預先感謝您的幫助。

回答

2

要獲取/ big-directory下面所有葉子目錄的列表,可以使用this question中的答案。

然後,您可以構建一個while循環是這樣的:

find /big-directory -type d | sort | awk '$0 !~ last {print last} {last=$0} END {print last}' | while read dir 
do 
    # Do something useful with $dir 
    echo $dir 
done 

這應該給你一個起點。

0

我遇到了同樣的問題。閱讀這個問題和其他幾個人,再加​​上大量的試驗和錯誤後,我想出了以下解決方案:

#!/bin/bash 
for dir in `find /big-directory -type d` 
do 
    if [ -e $dir/file.md ]; #test if dir contains file 
    then 
    echo "converting $dir/file.md to HTML..." 
    markdown $dir/file.md > $dir/file.html 
    fi 
done 

我知道,這不是絕對必要的檢查文件是否存在,但除此之外,腳本每次找到一個不包含此文件的目錄時都會引發錯誤。

相關問題