ファイル(d:\ mywork \ list.txt)を1行ずつ読み込み、その文字列が特定のファイル(1つずつ)ディレクトリ(d:\ new_work)。複数のファイルから行を削除する方法
いずれかのファイル(存在する可能性があります)に存在する場合は、それぞれのファイルから文字列(car \ yrui3、)を削除してそれぞれのファイルを保存します。
list.txtに:D:\のnew_work:
Rollcar-access.txt
Mycar-access.txt
Newcar-access.txt
.......
......
マイコード:
value=File.open('D:\\mywork\\list.txt').read
value.gsub!(/\r\n?/, "\n")
value.each_line do |line|
line.chomp!
print "For the string: #{line}"
Dir.glob("D:/new_work/*-access.txt") do |fn|
print "checking files:#{fn}\n"
text = File.read(fn)
replace = text.gsub(line.strip, "")
File.open(fn, "w") { |file| file.puts replace }
end
end
問題は値が取得されていません、ある複数のファイルを持つ
car\yrui3,
dom\09iuo,
id\byt65_d,
rfc\some_one,
desk\aa_tyt_99,
.........
.........
ディレクトリ期待どおりに削除されました。また、値を印刷しようとしたときにtext
が空です。
私たちはあなたが新人であるか経験者であるかには関心がありません。よく調査され、よく尋ねられ、簡潔な質問が必要です。私はSOなどのコミュニティでの作業について説明しているので、「[スマートウェイの質問方法](http://catb.org/esr/faqs/smart-questions.html)」を読むことをお勧めします。 –
あなたの仕事は多少なりとも "[XY問題](https://meta.stackexchange.com/q/66377/153968)"です。あなたはおそらく最初にタスクを解決することについて質問していたはずですが、実装について質問しています。問題を再考することをお勧めします。ファイルは何を表していますか?なぜデータは複数のファイルに分散していますか?データベースを使用してファイルの内容を保存することを検討してください。迅速に検索および削除することができます。 SQLiteでもこれを素早く処理でき、Sequel、Datamapper、Active RecordなどのORMを使用すると非常に簡単に処理できます。 –