2016-11-23 5 views
0

私はファイル拡張子を.docに変更しようとしています。私は以下のコードを試していますが、動作しません。どうして?ファイル拡張子をRで変更します

DD17-01.LOG DD17-02.LOG DD17-03.LOG DD17-4.LOG DD17-5.LOG DD37-01.LOG DD37-02.LOG DD39-01.LOG DD39-02.LOG DD39-03.LOG 
     FALSE  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE 

答えて

3

それも簡単です:私は、私が手に出力されhere

startingDir<-"C:/Data/SCRIPTS/R/TextMining/myData" 

filez<-list.files(startingDir) 

sapply(filez,FUN=function(eachPath){ 
    file.rename(from=eachPath,to=sub(pattern =".LOG",replacement=".DOC",eachPath)) 
}) 

からの命令を使用しています。ここでは(シェルで)10個のファイルを作成することによって開始:

$ for i in 0 1 2 3 4 5 6 7 8 9; do touch file${i}.log; done 

は、次にRに、それは本当にわずか3 ベクトル化操作です:私たちは、ファイル名を読み

files <- list.files(pattern="*.log") 
newfiles <- gsub(".log$", ".doc", files) 
file.rename(files, newfiles) 

、すべての上で変換を行います(末尾の.log.docに置き換えて)すべてのファイルを古い名前から新しい名前に一度に変更しました。

これは、それぞれの暗黙の名前変更についてTRUEをエコーし​​ます:

[email protected]:/tmp/filerename$ Rscript renameFiles.R 
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE 
[email protected]:/tmp/filerename$ ls 
file0.doc file1.doc file2.doc file3.doc file4.doc file5.doc 
file6.doc file7.doc file8.doc file9.doc renameFiles.R 
[email protected]:/tmp/filerename$ 

編集:ここでははRですべてをやっても、より明示的なウォークスルーです:

[email protected]:/tmp/filerename/new$ ls     ## no files here 
renameFiles.R 
[email protected]:/tmp/filerename/new$ cat renameFiles.R  ## code we will run 

options(width=50) 
ignored <- sapply(1:10, function(n) write.csv(n, file=paste0("file", n, ".log"))) 
files <- list.files(pattern="*.log") 
print(files) 

newfiles <- gsub(".log$", ".doc", files) 
file.rename(files, newfiles) 

files <- list.files(pattern="*.doc") 
print(files) 
[email protected]:/tmp/filerename/new$ Rscript renameFiles.R ## running it 
[1] "file10.log" "file1.log" "file2.log" 
[4] "file3.log" "file4.log" "file5.log" 
[7] "file6.log" "file7.log" "file8.log" 
[10] "file9.log" 
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE 
[10] TRUE 
[1] "file10.doc" "file1.doc" "file2.doc" 
[4] "file3.doc" "file4.doc" "file5.doc" 
[7] "file6.doc" "file7.doc" "file8.doc" 
[10] "file9.doc" 
[email protected]:/tmp/filerename/new$ 
+0

も ​​- 私は理解していません".LOG $"の場合は$です。その目的は何ですか? – val

+1

正規表現のドキュメントを読むと、 '.log'で_ending_を意味します。 –

関連する問題