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
即使我已經允許完全控制這兩個文件。
你會如何解析「seedoneat」?那是「SeeDonEat」還是「SeedOneAt」?無論如何,這:'];然後'是一個問題 - 修復它說']; then' ... – twalberg 2014-10-16 20:34:04