それも簡単です:私は、私が手に出力され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$
も - 私は理解していません".LOG $"の場合は$です。その目的は何ですか? – val
正規表現のドキュメントを読むと、 '.log'で_ending_を意味します。 –