2015-10-19 47 views
-4

我有fastq_trimmer_command_line.pl。它有chmod 755,位於PATH的目錄中。我從我希望輸出的目錄(~/data/output)運行此腳本,並且輸入文件位於不同的文件夾(~/data)中。如何在perl中執行命令的同一文件夾中輸出文件

的命令:

~/data/output$ fastq_trimmer_command_line.pl -f ../r1.fastq -r ../r2.fastq -c 22 

fastq_trimmer_command_line.pl

...important details omitted... 
open OUT_R1, ">", "$R1_file-trimmed.fq"; 

輸出文件夾中~/data,其中輸入文件被創建。如何在~/data/output中創建r1.fastq--trimmed.fq,該命令是從哪個目錄執行的?

+1

您需要顯示確定產生輸出位置的相關代碼。 'open'? – toolic

+0

任何命令的默認設置是解釋相對於當前目錄的相對文件名,也就是說,你正在問什麼。 – tripleee

+0

需要澄清一下:你是問在Perl腳本「script.pl」或O/S命令行中如何處理?如果您要求從Perl腳本執行此操作,那麼我同意使用工具來顯示相關的Perl代碼會很有幫助。謝謝。 – tale852150

回答

2

如果我理解正確,如果輸入文件是../r1.fastq,您希望輸出文件爲r1.fastq-trimmed.fq

use File::Basename qw(basename); 

my $input_qfn = '../r1.fastq'; 
my $output_qfn = basename($input_qfn) . '-trimmed.fq'; 
+0

這不是可執行文件的位置。請檢查修改後的問題。我試圖讓這個更清楚。謝謝。 – SSh

+0

儘管你的修訂,這個答案仍然是正確的。 – ikegami

相關問題