줄 단위로 파일 (d : \ mywork \ list.txt)을 읽고 해당 문자열이 특정 파일에서 (하나씩) 발생하는지 검색하려고합니다. 디렉토리 (d : \ new_work).여러 파일에서 줄을 지우는 방법
하나 이상의 파일에있는 경우 해당 파일에서 문자열 (car \ yrui3,)을 삭제하고 해당 파일을 저장하려고합니다.
List.txt 파일 :
car\yrui3,
dom\09iuo,
id\byt65_d,
rfc\some_one,
desk\aa_tyt_99,
.........
.........
디렉토리 가진 여러 개의 파일 : 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
문제입니다 예상대로 삭제되었습니다. 또한 text
값을 인쇄하려고 할 때 비어 있습니다.
우리는 당신이 새로운 사람이든 경험이 많은 사람이든 관심이 없습니다. 우리는 잘 연구되고, 잘 질문하고 간결한 질문을 원합니다. 나는 "[똑똑한 방법으로 질문하는 법] (http://catb.org/esr/faqs/smart-questions.html)"을 읽는 것이 좋습니다. SO와 같은 커뮤니티와의 협력을 설명합니다. –
귀하의 작업은 다소 "[XY 문제] (https://meta.stackexchange.com/q/66377/153968)"입니다. 당신은 당신의 구현에 대해 물어볼 것입니다. 문제를 다시 생각해 보는 것이 좋습니다. 파일은 무엇을 나타 냅니까? 왜 데이터가 여러 파일에 분산되어 있습니까? 신속하게 검색하고 삭제할 수있는 파일 내용을 저장하기 위해 데이터베이스 사용을 고려하십시오. SQLite조차도이 작업을 신속하게 처리 할 수 있으며 Sequel, Datamapper 또는 Active Record와 같은 ORM을 사용하여 매우 쉽게 수행 할 수 있습니다. –