0
我是bash的新手,並且難以處理目錄樹結構。 我有如下按目錄分支對文件進行分組/葉
I/A/dataA.dat
I/B/dataB.dat
I/C/dataC.dat
II/A/dataA.dat
II/B/dataB.dat
II/C/dataC.dat
III/A/dataA.dat
III/B/dataB.dat
III/C/dataC.dat
我現在要處理I/A/dataA.dat
與I/B/dataB.dat
與II/B/dataB.dat
等(對每一種情況)同樣II/A/dataA.dat
的目錄結構。但我不想處理,例如,I/A/dataA.dat
與II/B/dataB.dat
。
找到這樣的文件對的最佳方法是什麼?
我希望找到對的名稱傳遞到慶典等功能如下
function process_pair()
{
fileOne=$1; #for example II/A/data.dat
fileTwo=$2; #for example II/B/data.dat
//the rest of the function that processes this pair.
}
,但我不知道怎麼弄的變量$1
和$2
。
我目前使用bash並從dirs=find $SOURCE -type d -links 2
命令開始(查找所有葉目錄 - adapted from this question)。然後我試圖循環這些(使用子字符串命令來獲取上面的目錄)。 但是,我發現這很困難,我認爲必須有更好的方法。
這是朝着諸如此類的事情,邊你可能更喜歡一個更全面的腳本語言。顯而易見的方法是構建一個數據結構,對於每個文件名,它包含它出現的目錄列表,這樣每次讀取目錄時,都會在每個目錄中處理每個文件中的每個文件在相應的列表中。例如,這在perl中非常容易,並且有數組散列。 – Cascabel 2011-04-06 14:05:12
謝謝@Jefromi,如果我在這裏沒有收到更多回復,我會挖掘出我的Perl書籍(無論如何,它都需要粉塵......) – Tom 2011-04-06 14:11:01