2013-06-12 61 views
1

我在寫一個非常小的csh腳本,它使用foreach循環來讀取文件列表,通過名爲'rdseed'的程序運行文件,將它們轉換爲另一種文件類型,然後輸出新文件。如何使用csh在程序中使用創建文件和目錄列表

我非常缺乏經驗與規劃,但到目前爲止,我的劇本已經工作得很好,但我需要的文件輸出到,他們被發現在該目錄。

更具體地講,我有一個文件在/ home/Jesse/seajadedata/LandStations/Test/20100902 /中,但是我在Test目錄中還有其他幾個子文件夾。我正在'/ Jesse'目錄中運行我的csh腳本,並且所有新的輸出文件隨後被放置在'/ Jesse'目錄中,該目錄將所有文件分散。程序中有一個選項'rdseed',它允許指定一個輸出目錄,所以我想要做的就是編寫程序,以便我的文件列表與在其中找到的目錄列表相關聯,但我不確定如何做到這一點。

這裏是我的腳本:

#!/bin/csh 

set startdir=/home/Jesse/seajadedata/LandStations/Test 
foreach file(`find $startdir -type f -name "*.*.S.*"`) 
rdseed -d -q $outputdir -f $file 
end 

正如你所看到的,我已經寫了$ outputdir在輸出目錄需要指定。我感謝任何幫助!

+0

好問問題!我相信你會想用'dirname'和'basename'分別獲取你遇到的每個路徑的目錄和文件名。 –

回答

0

我想我應該把它寫成答案,呵呵。試試:

rdseed -d -q `dirname $file` -f `basename $file` 
+0

太棒了!謝謝一堆。最後,我的腳本最終變得更加複雜了,但是你給了我一個很好的開始。我不知道dirname和basename函數。 – JesseH

相關問題