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

有关其他案例转换的替代方案,请参见此处,我使用了 tr,因为此处不需要 awk。

于 2012-07-13T23:51:12.997 回答