0

次のコマンドを使用して、現在の作業ディレクトリ内のすべてのファイルを大文字にしようとしています。

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

それでも、次のエラー メッセージが表示されます。

svn: '.' is not a working copy
svn: '.' is not a working copy
svn: '.' is not a working copy
svn: '.' is not a working copy

私はosxを使用しています。助けていただけますか?前もって感謝します。

4

1 に答える 1

0

スクリプトでlsを使用しないでください。lsはデータを人間が表現するためのものです(名前にスペースを入れたり、ここなどのような特別なフォルダでスクリプトを驚かせたりします)。代わりに次のことを試してください。

for f in *;do;svn mv $f $(echo $f| tr '[a-z]' '[A-Z]');done

他のケース変換の選択肢については、ここを参照してください。ここではawkは必要ないため、trを使用しました。

于 2012-07-13T23:51:12.997 に答える