6

次のように、Subversion 作業コピー内の一連のファイルの大文字と小文字を変更する必要があります。

svn mv test.txt Test.txt
svn mv test2.txt Test2.txt
svn mv testn.txt Testn.txt
...
svn commit -m "caps"

このプロセスを自動化するにはどうすればよいですか? 標準の Linux インストール ツールが利用可能です。

4

5 に答える 5

13

ls | awk'{system( "svn mv" $ 0 "" toupper(substr($ 0,1,1))substr($ 0,2))}'

明らかに、他のスクリプト言語も同様に機能します。awkには、どこにでもあるという利点があります。

于 2008-10-14T00:08:57.777 に答える
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
于 2008-10-14T00:05:07.333 に答える
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 {} + 
于 2008-10-14T00:09:47.697 に答える
1

大文字と小文字のみの名前変更を処理できないため、この変更により、Windows および Mac システムの既存の作業コピーが破損することに注意してください。

于 2008-10-19T00:41:26.693 に答える
0

通常、これを行うには、「ls」出力をファイルにリダイレクトし、vim マクロを使用して各ファイル名を必要なコマンド ラインに挿入し、そのファイルをシェル スクリプトとして実行します。地味ですが効果的です。

于 2008-10-13T23:53:14.393 に答える