Linux 用于大写文件名中单词的第一个字母的脚本

Linux 用于大写文件名中单词的第一个字母的脚本,linux,file,capitalize,Linux,File,Capitalize,我试图重命名mysql数据库的表,使每个单词都有大写字母,因此,例如,一个名为“renametable”的表将变成“renametable”。我有一个同事写了几个脚本,通过从正确的数据库中获取表名来实现这一点,但由于我们更改了服务器,它不再起作用了。我不确定发生了什么变化,所以我将在这里发布脚本,以防你能帮助我 第一件事是将这两个脚本放在/root文件夹中, 然后导航到数据所在的mysql数据库文件夹并运行: ls -1 | xargs -i /root/rename2.sh {} 重命名2.

我试图重命名mysql数据库的表,使每个单词都有大写字母,因此,例如,一个名为“renametable”的表将变成“renametable”。我有一个同事写了几个脚本,通过从正确的数据库中获取表名来实现这一点,但由于我们更改了服务器,它不再起作用了。我不确定发生了什么变化,所以我将在这里发布脚本,以防你能帮助我

第一件事是将这两个脚本放在/root文件夹中, 然后导航到数据所在的mysql数据库文件夹并运行:

ls -1 | xargs -i /root/rename2.sh {}
重命名2.sh:

force=`echo $1 | tr [:upper:] [:lower:]`
if [ -f $1 ];then
 mv $1 $force
fi
#!/bin/sh

lower=`echo $1 | tr [:upper:] [:lower:]`

if [ -f $lower ];then
 mv $lower $1
fi
之后,我必须运行另一个命令:

ls -1 ../<gooddb> | xargs -i /root/rename.sh {}
现在,当我运行第一个命令时,我得到一个错误:

: not founde2.sh: 2: /root/rename2.sh:
/root/rename2.sh: 7: /root/rename2.sh: Syntax error: end of file unexpected (expecting "then")
以及之后第二个命令的错误:

xargs: /root/rename.sh: No such file or directory file 

即使我允许完全控制这两个文件。

这看起来像是一行被覆盖的内容:

: not founde2.sh: 2: /root/rename2.sh:
可能涉及Windows行结束(
$'\r'
)吗?

如何解析“seedoneat”?那是“SeeDonEat”还是“SeeDonEat”?无论如何,这是:
];那么
将是一个问题-修复它,说成
];然后
。。。