하부디렉터리까지 디렉터리 이름에 특정 문자열이 포함되어 있으면 그 특정 문자열만 다른 문자열로 치환해서 디렉터리 이름을 바꿀려고 하거든요?
스크립트 만들자니 귀찮고,혹시나 최강의 방법이 있지 않을까요?
find + vi + mv 조합으로 해결..;;
$ 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'shttp://spbear.com
find . -type d -print | awk '/.*old-string.*/ {src= $0;gsub("old-string", "new-string");dest = $0;system("mv "src" "dest)}'
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
find + vi + mv 조합으로 해결..;;
find + vi + mv 조합으로 해결..;;
[code:1]$ cat change.rb#!/usr/bin/en
루비가 깔려있어야 합니다.
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
잘 되려나.. -ㅅ-)a[code:1]find . -exec
잘 되려나.. -ㅅ-)a
Running in the 90's
http://spbear.com
find . -type d -print | awk '/.*old-stri
find . -type d -print | awk '/.*old-string.*/ {src= $0;gsub("old-string", "new-string");dest = $0;system("mv "src" "dest)}'
댓글 달기