gpt4 book ai didi

linux - 将文件名中单词的首字母大写的脚本

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:35 25 4
gpt4 key购买 nike

正在尝试重命名 mysql 数据库的表,使每个单词的首字母大写,例如,名为“renametable”的表将变为“RenameTable”。我从一个同事那里得到了几个脚本,它们设法通过从正确的数据库中获取表名来做到这一点,但是由于我们更改了服务器,它不再起作用了。我不确定发生了什么变化,所以我会在此处发布脚本,以防您能帮助我。

首先是将 2 个脚本放在/root 文件夹中,然后导航到数据所在的 mysql 数据库文件夹并运行:

ls -1 | xargs -i /root/rename2.sh {}

rename2.sh:

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

之后我不得不运行另一个命令:

ls -1 ../<gooddb> | xargs -i /root/rename.sh {}

其中gooddb是具有正确表命名结构的数据库

重命名.sh:

#!/bin/sh

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

if [ -f $lower ];then
mv $lower $1
fi

现在,当我运行第一个命令时,出现错误:

: 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 

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

最佳答案

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

: not founde2.sh: 2: /root/rename2.sh:

可能涉及 Windows 行结束 ($'\r')?

关于linux - 将文件名中单词的首字母大写的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26409156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com