2014-10-16 1 views
0

пытается переименовать таблицы баз данных mysql, чтобы иметь первые буквы в каждом слове, так, например, таблица с названием «renametable» станет «RenameTable». У меня было несколько сценариев от коллеги, которым удалось это сделать, получив имена таблиц из правильной базы данных, но она больше не работает, поскольку мы изменили наши серверы. Я не уверен, что изменилось, поэтому я опубликую сценарии здесь, если вы можете мне помочь.Сценарий для заглавной буквы первого слова в имени файла

Прежде всего было поместить 2 скрипта в/корневой папке, затем перейдите в папку базы данных 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 представляет собой базу данных со структурой именования правильной таблицы

rename.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 

, хотя я разрешил полный контроль над этими двумя файлами.

+0

Как бы вы разобрали «seedoneat»? Это «SeeDonEat» или «SeedOneAt»? Независимо от этого: '], тогда' будет проблемой - исправьте это, чтобы сказать ']; затем' ... – twalberg

ответ

1

Это выглядит как перезаписана линия:

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

Windows, линия заканчивается ($'\r') участвует, может быть?