나는 루비를 기반으로하는 파일 이름 바꾸기 프로그램을 스스로 연습하고있다. (나는 리눅스에서 이름을 바꾼다는 것을 알고 있지만 루비를 배우고 싶어한다. Mac에서는 사용할 수 없음).루비 파일의 이름을 변경하는 방법
아래 코드에서 파일 이름이 그러한 검색 패턴을 포함하고 있음에도 불구하고 .include?
메서드는 항상 false를 반환한다는 것이 문제입니다. include?
수표를 주석 처리하면 gsub()
은 새 파일 이름을 전혀 생성하지 않는 것처럼 보입니다 (즉 파일 이름은 동일하게 유지됩니다). 그래서 누군가 내가 뭘 잘못했는지 한번보세요. 미리 감사드립니다.
다음은 예상 된 동작입니다 : 현재 폴더에있는 세 개의 파일이 있다고 가정하면 루비 스크립트, b1.jpg하는 B2를 이름을 변경 할 수 있어야한다 a1.jpg, a2.jpg 및 a3.jpg 을. JPG, b3.jpg
#!/Users/Antony/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
puts "Enter the file search query"
searchPattern = gets
puts "Enter the target to replace"
target = gets
puts "Enter the new target name"
newTarget = gets
Dir.glob("./*").sort.each do |entry|
origin = File.basename(entry, File.extname(entry))
if origin.include?(searchPattern)
newEntry = origin.gsub(target, newTarget)
File.rename(origin, newEntry)
puts "Rename from " + origin + " to " + newEntry
end
end
당신이 세'gets' 프롬프트에 어떤 입력을 제공하고, ... car1, car2로 변환/있었다? – bta
나는 심각하게'rename' 명령이 더 잘할 수 있다고 생각합니다. – texasbruce
@texasbruce, mac에는 이름 바꾸기 명령이 없습니다. 어쩌면 macports 뭔가가 있지만 단지 펄 스크립트의 무리를 발견했다. 하지만 이전에 제안한 것처럼, 그것은 나를위한 루비 운동입니다. – Antony