我正在尝试使用以下命令将当前工作目录中的所有文件大写:
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上。能否请你帮忙?提前致谢。
答案 0 :(得分:0)
你不应该在脚本中使用ls,ls是用于人类呈现数据(并且会使用名称中的空格,特殊文件夹,如。和..等像这里一样惊喜你的脚本等等),试着改为:< / p>
for f in *;do;svn mv $f $(echo $f| tr '[a-z]' '[A-Z]');done
See here for other case conversions alternatives,我使用了tr,因为这里不需要awk。