일정부분만 디렉토리 치환하기 어떻게 하나요?

acidd15의 이미지

하부디렉터리까지 디렉터리 이름에 특정 문자열이 포함되어 있으면 그 특정 문자열만 다른 문자열로 치환해서 디렉터리 이름을 바꿀려고 하거든요?

스크립트 만들자니 귀찮고,혹시나 최강의 방법이 있지 않을까요?

acidd15의 이미지

find + vi + mv 조합으로 해결..;;

mithrandir의 이미지

$ cat change.rb
#!/usr/bin/env ruby
Dir['*/**'].each {|fname|
  puts 'editing '+fname
  f_old = File.open(fname, 'r')
  f_new = File.open(fname + '.new', 'w')
  while f_old.gets
    f_new.print $_.gsub(ARGV[0], ARGV[1])
  end
  File.delete(fname)
  File.rename(fname+'.new' , fname)
}

change.rb 'old-string' 'new-string'

루비가 깔려있어야 합니다.

언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net

졸곰의 이미지

잘 되려나.. -ㅅ-)a

find . -exec echo {} | sed s/old-string/new-string/g | xargs mv {} \;

Running in the 90's
http://spbear.com

smoon의 이미지

find . -type d -print | awk '/.*old-string.*/ {src= $0;gsub("old-string", "new-string");dest = $0;system("mv "src" "dest)}'