2017-11-14 4 views
0

私はここに、50個のファイルで作られたディレクトリを持っているが、ファイル名であるかについての抜粋です:複数のファイルをコマンド関数に渡して別々のファイルに出力するにはどうすればよいですか?

input1.txt 
    input2.txt  
    input3.txt 
    input4.txt 

私はRでスクリプトを書いているが、私は、「システム」 を使用して、その中のbashコマンドを使用しています私は、などをoutput2.txtに出力するinput2.txt、output1.txtに出力するinput1.txtたい

X input1.txt output1.txt 

..:私は1つのファイル 例に一つのファイルに出力するを取るシステムのコマンドXを持っています

私はこれを試してきました:

私は間違って何をしていますか?私はシステムのラインでエラーが発生している、それは不正な文字列定数と言う、私はそれを取得しない..私は間違った方法でシステムコマンドを適用しましたか?

システム内で取得するためにpasteコマンドを実行せずにすべての入力ファイルと出力ファイルを取得する方法はありますか?

+4

私はあなたがcreate.fileではなくfile.createを意味すると思います。また、あなたのコマンドでは、出力ファイルを作成する前に出力ファイルを作成する必要があります。通常はそうではありません。 'i <-1:4; cmds < - sprintf( '"%s" "%s /入力%d.txt" "%s /出力%d.txt"'、cmd、indir、i、outdir、i) 'コマンドをまとめて作成します。 –

+0

これは私のRスクリプトの中にありますか?とcmd、それは私が使用したいコマンドですか?システムを使うときのように私の周りに置く必要はありませんか? –

答えて

0

システムコマンドを使用せずにファイルを新しいディレクトリにコピーする方法は非常に簡単です。これはまた、異なるオペレーティングシステムでクロス対応ができるという利点があります(ファイル構造を変更するだけです)。

修正コードから:"Copying files with R" by Amy Whitehead

私はここにいくつかのpsudocodeを持つファイル1時50分のために実行しているのあなたの方法を使用。 current.folderとnew.folderを何かに変更する必要があります

# identify the folders 
current.folder <- "/usr/local/bin/command" 
new.folder <- "/outputdir/output" 

# find the files that you want 
i <- 1:50 
# Instead of looping we can use vector pasting to get multiple results at once! 
inputfiles <- paste0(current.folder,"/input",i,".txt") 
outputfiles <- paste0(new.folder,"/output",i,".txt") 

# copy the files to the new folder 
file.copy(inputfiles, outputfiles) 
関連する問題