我嘗試使用bash腳本時出現問題。我有一個包含1000個文件的目錄,我希望按順序使用每個文件運行一個命令。但是,每個文件都與另一個文件配對,例如File1.sam,File1.gz,File2.sam,File2.gz等。而我正在執行的命令要求將兩個文件作爲參數使用。當只需要一個參數時,我一直在使用類似於以下命令的東西,並且我認爲(錯誤地)我可以簡單地像下面那樣擴展它。bash腳本按順序執行程序
shopt -s nullglob
for myfile1 in *.sam && for myfile2 in *.gz
do
./bwa samse -r "@RG\tID:$myfile1\tLB:$myfile1\tSM:$myfile1\tPL:ILLUMINA" lope_V1.2.fasta $myfile1 $myfile2 > $myfile1.sam2 2>$myfile1.log
done
任何人都知道我可以如何修改這個或以另一種方式指向我?
看起來不錯。只有改進的建議是使用更嚴格的PE myfile2 =「$ {myfile1%.sam} .gz」'。 – 2013-03-16 22:47:43
@JoshCartwright謝謝,我更新了帖子 – 2013-03-16 22:50:04
哦,我沒有看到你已經從'。/ bwa'行的引號中刪除了$ myfile1參數擴展。你爲什麼要這麼做?如果文件名有空格,這將會由於分詞而中斷。 – 2013-03-16 22:52:25