2011-05-20 66 views
1

我正在使用腳本將特定文件從一個位置移動到另一個位置,該位置從日誌文件中檢索該文件名。當我在shell提示符下運行這個命令時,沒關係。bash shell中的字符串操作

Example: When I run this command:

tail -2 /pretupsvar/pretups_weblogs/DirectPayOutErrorLog.log | 
    grep 'MESSAGE: SQL Exception:Invalid column index' | 
    sed 's/.*FILE NAME: //;s/].*//;s/ /\\ /g' 

輸出爲:

userList1305816669650_PB_PBZONE_DLMP_RLMP_ETOPUP_WEEL\ ONE\ PAYOUT.xls 

However, when I run this command:

cp `tail -2 /pretupsvar/pretups_weblogs/DirectPayOutErrorLog.log | 
    grep 'MESSAGE: SQL Exception:Invalid column index' | 
    sed 's/.*FILE NAME: //;s/].*//;s/ /\\ /g'` /pretupshome/ 

輸出爲:

cp: cannot stat `userList1305816669650_PB_PBZONE_DLMP_RLMP_ETOPUP_WEEL': 
    No such file or directory 
cp: cannot stat `ONE': No such file or directory 
cp: cannot stat `PAYOUT.xls': No such file or directory 

Actually, I do the same in script which is like:

fname=`tail -2 /pretupsvar/pretups_weblogs/DirectPayOutErrorLog.log | 
    grep 'MESSAGE: SQL Exception:Invalid column index' | 
    sed 's/.*FILE NAME: //;s/].*//;s/ /\\ /g'` 

mv /pretupsvar/pretups_weblogs/BulkComissionPayout/UploadOffline/$fname 
    /pretupsvar/pretups_weblogs/BulkComissionPayout/Errorfile/ 

但它不能移動這個文件,顯示以上述相同的錯誤。

請幫助我:如何在腳本中移動相同內容?

回答

5

試試把它裏面的報價:解決當

fname=`tail -2 /pretupsvar/pretups_weblogs/DirectPayOutErrorLog.log | 
    grep 'MESSAGE: SQL Exception:Invalid column index' | 
    sed 's/.*FILE NAME: //;s/].*//'` 

mv "/pretupsvar/pretups_weblogs/BulkComissionPayout/UploadOffline/$fname" 
    /pretupsvar/pretups_weblogs/BulkComissionPayout/Errorfile/ 

路徑/pretupsvar/pretups_weblogs/BulkComissionPayout/UploadOffline/$fname有空格。

我覺得把這個聲明放在引號內應該可以工作。

+0

他不是已經這麼做了嗎? – freethinker 2011-05-20 07:56:48

+1

我認爲不,他不是 – Mayank 2011-05-20 08:05:20

+0

第一行也不需要圍繞命令替換引號嗎? – 2011-05-20 09:00:16

0

我想你不應該這樣做空間替換(s/ /\\ /g),如果你想以這種方式執行你的命令。

+0

SH bulkerror.sh 週五5月20日15時07分40秒北京時間2011 LS被照顧:/ pretupsvar/pretups_weblogs/BulkComissionPayout/UploadOffline/userList1305816669650_PB_PBZONE_DLMP_RLMP_ETOPUP_WEEL:沒有這樣的文件或目錄 LS:ONE:沒有這樣的文件或目錄 LS:PAYOUT.xls:沒有這樣的文件或目錄 – 2011-05-20 09:33:46

+0

它不工作,你可以建議任何其他方式。 – 2011-05-20 09:36:33

+0

其實我不知道'ls'是從哪裏來的。我沒有在您的腳本提取中看到它。 – bmk 2011-05-20 10:10:27