私は2つのフォルダAとBにそれぞれ5000と6000のファイルを持っています。フォルダBはフォルダAのサブセットです。これらの2つのフォルダを比較し、不一致のファイルを別々のフォルダに移動する必要があります。ファイル名を比較して移動すると、どのようにRで実行できますかは2つのフォルダのファイル名を比較し、一致しないファイルを別のフォルダに移動します
答えて
まず、例としてAのためのディレクトリとここに(それぞれのディレクトリ内のファイルを一覧表示する必要があるでしょう:
flsA <- list.files(dirA,patt,full.names=TRUE, recursive=FALSE)
patt
を使用すると、(例えば".txt$"
、ファイル拡張子のように、パターン文字列を指定することができます最後に$
の点に注意してください。 Rにファイル名の最後を伝える)
あなたが含めるサブディレクトリは、recursive
をTRUE
に設定することができます。
full.names
オプションは完全なパスを指定し、後でファイルを移動するために必要です。あなたは両方のディレクトリがリストされていた場合
、あなたは機能basename
と%in%
に含まれるファイルを比較することができます
ix <- basename(flsA) %in% basename(flsB)
これはあなたに(両方A
とB
内のファイルのTRUE
)論理ベクトルを与えるであろうあなたをそして、あなたがしたいファイルのインデックスを作成するために使用することができます。
to_move <- flsA[!ix]
私が目にしたいと論理ベクトルを逆にする!
演算子を使用しています2つのディレクトリにないファイル。
最後に、あなたのファイル、例えばにしたい機能をlapply
ことができます。
lapply(to_move, function(x) file.copy(x,new.dir_C)
それらが正しくコピーされたら、あなたは原本を取り除くためにfile.remove
を使用することができます。
lapply (to_move,file.remove)
コードは素晴らしいです。しかし、問題はファイル名にあります。 ECGV0007_wholecaseRRiQTi、ECGV0009_wholecaseRRiQTi .......... ECGV103113_wholecaseRRiQTi、ECGVS1-7662_wholecaseRRiQTi ....となど、フォルダBのファイル名:次のように私は、フォルダAのファイル名を持っているなどECGV103106_After_1stSleepOnset_RRiQTi ECGV0007_After_1stSleepOnset_RRiQTiを意味するものの数字だけでは一致/ unmatch。これらのファイルを比較するにはどうすればいいですか – DaphFab
これは、別の質問、または元の質問の少なくとも変更を構成します。ファイル名が一致する場合は、正規表現を使用します。あなたの質問を更新する場合は、ファイル名の例文を追加して、私は私の答えを更新することができます私は表示されます – Val
- 1. 同一でないファイルの2つのフォルダを比較していますか?
- 2. ファイル名が一致するファイルのみを1つのフォルダから別のフォルダに移動
- 3. SymmetricDifferenceを使用して、同一でないファイルに対して2つのフォルダを比較しますか?
- 4. ファイル名の一部に基づいて別のフォルダにファイルを移動する
- 5. ソースファイル名の一部に基づいてフォルダ内のファイルを比較して移動するバッチスクリプト
- 6. Python - ファイル名とフォルダ名の比較
- 7. フォルダの作成と削除ファイルをフォルダに移動し、ファイルをフォルダの外に移動します
- 8. シェルスクリプトを使用して2つのフォルダのファイルを比較します
- 9. コンテンツ内に多数のファイルがある2つのフォルダを比較します。
- 10. CMD内の同一でないファイルの2つのフォルダの比較
- 11. 2つのファイルの列を比較し、一致しない印刷
- 12. フォルダ間でファイルを移動しない
- 13. ファイルをフォルダから別のフォルダにランダムに移動しますか?
- 14. Java - 1つのフォルダから別のフォルダにすべてのファイルを移動して名前を変更
- 15. matlabで同じ名前のフォルダにファイルを移動します
- 16. ファイル内の別のフォルダにファイルを移動するには
- 17. ファイル名の部分文字列とフォルダ名の部分文字列を比較して移動する
- 18. あるフォルダから別のフォルダにファイルを移動する
- 19. C#ファイル名の一部がフォルダ名と一致する場合にファイルを移動する場合
- 20. 2つのフォルダを比較し、Powershellでファイルを追加/削除する方法
- 21. csvファイルの名前とフォルダ内のファイル名が一致する
- 22. ファイル名の6番目の数字に基づいてフォルダを作成し、フォルダを作成してそのフォルダにファイルを移動します
- 23. In_arrayが動作しない - 2つのファイルを比較する
- 24. バッチでHASH SHA1を使用して2つのフォルダからファイルを比較
- 25. インポートに失敗したファイルをSSISの別のフォルダに移動しますか?
- 26. フォルダ内のファイル名を検索し、Excelテーブルと一致
- 27. Java - 2つの同一ファイルのInputStreamを比較します
- 28. 2つのファイルを比較してPythonの違いを比較します
- 29. Python:ファイル名と同じディレクトリにあるフォルダ名との比較
- 30. FTP:ターミナルを使用して、あるフォルダから別のフォルダにすべてのファイルを移動します。
方法について'list.files()'を調べて名前を取得し、 '%in%'を使ってファイルが存在するかどうかを調べ、 'file.rename'や' file.copy() 'を探します。フォルダAとBの%の – din
%は私にすべて偽を与えます。これは何を意味するのでしょうか?フォルダAには追加のファイルがありますが、どのように見つけることができますか? – DaphFab