我有一个 KSH 简单脚本,它创建了我们在 FTP 服务器上收到的文件列表。
sF_Array=(` find . -type f ... `)
sF_len=${#sF_Array[*]}
for name in ${sF_Array[@]}
do
basename "$name" # This removes the leading slashdot
done>$ddw_data/FTP_FILE_LIST
挑战是一些文件中有空格(文件来自 MS Windows 机器)所以我用rename
for name in ${sF_Array[@]}
do
rename 's/ /_/g' "$name" # This removes spaces in file names
basename "$name" # This removes the leading slashdot
done>$ddw_data/FTP_FILE_LIST
但它不起作用。这FTP_FILE_LIST
看起来像(注意第 2 和第 3 个记录/文件名):
TCA~PRE~PREP~9939985~ONTDTVE3A~33~F~3922~R22-100~000806451655~20130819~040320.XML
J
MEM~ETT~CVT~654687-MEMTO~jgm16227~1~P~1100~R24-500~033068658187~20130813~234639.XML
J
MEM~FUN~TEST~312326-MEMTO~jgm16227~2~P~1100~R24-200~035696412416~20130813~234638.XML
J-MEM~DCA~FVT~5333131~ONTDTVD1C~1~F~3420~DECA1MR0-01~XED1B1201A3313~20130827~201916.XML
TCA~COS~COSM~95518585~ONTDTVE7A~63~F~3911~R22-300~00065881346~20130817~000300.XML
我想 FTP_FILE_LIST
看起来像这样(注意第 2 和第 3 记录/文件名):
TCA~PRE~PREP~9939985~ONTDTVE3A~33~F~3922~R22-100~000806451655~20130819~040320.XML
J_MEM~ETT~CVT~654687-MEMTO~jgm16227~1~P~1100~R24-500~033068658187~20130813~234639.XML
J_MEM~FUN~TEST~312326-MEMTO~jgm16227~2~P~1100~R24-200~035696412416~20130813~234638.XML
J-MEM~DCA~FVT~5333131~ONTDTVD1C~1~F~3420~DECA1MR0-01~XED1B1201A3313~20130827~201916.XML
TCA~COS~COSM~95518585~ONTDTVE7A~63~F~3911~R22-300~00065881346~20130817~000300.XML
我错过了什么??