我需要在subversion工作副本中更改一组文件的大小写,如下所示:
svn mv test.txt Test.txt svn mv test2.txt Test2.txt svn mv testn.txt Testn.txt ... svn commit -m "caps"
如何自动完成此过程?提供标准的linux安装工具。
答案 0 :(得分:13)
ls | awk'{system(“svn mv”$ 0“”toupper(substr($ 0,1,1))substr($ 0,2))}'
显然,其他脚本语言也可以正常工作。 awk的优势在于它无处不在。答案 1 :(得分:2)
如果你有一个不错的安装你应该有python,试试这个:
#!/usr/bin/python
from os import rename, listdir
path = "/path/to/folder"
try:
dirList = listdir(path)
except:
print 'There was an error while trying to access the directory: '+path
for name in dirList:
try:
rename(path+'\\'+name, path+'\\'+name.upper())
except:
print 'Process failed for file: '+name
答案 2 :(得分:1)
我认为用bash / sed / tr / find做一个简单的方法。
我会创建一个重命名的Ruby / Perl脚本。
#!/usr/bin/ruby
# Upcase.rb
ARGV.each{ |i|
newname = i.gsub(/(^.|\s.)/{ |x| x.upcase }
`svn mv "#{i}" "#{newname}" `
}
然后就这样做
./Upcase.rb foo.txt test.txt test2.txt foo/bar/test.txt
或者如果你想做一个完整的目录
find ./ -exec ./Upcase.rb {} +
答案 3 :(得分:1)
请注意,此更改会破坏Windows和Mac系统上现有的工作复印件,因为它们无法处理仅重命名的情况。
答案 4 :(得分:0)
我通常通过将'ls'输出重定向到文件来执行此操作,使用vim宏将每个文件名按到我想要的命令行,然后将该文件作为shell脚本执行。这很粗但很有效。