2016-08-30 136 views
2

我试图从一个文件夹移动一个非常具体的命名文件到另一个(最终被SFTP'd到另一台服务器)。KSH脚本将文件移动到SFTP文件夹

的文件名应该是这样的: reports_aug_30.csv

用我现在的剧本,我有问题,得到它在该格式。我得到: aug_30_reports.csv

我想要做的是在开始处移动日期,然后让它保留文件名的其余部分的名称。

有没有人有如何格式化报告名称的建议?

在我的脚本中的两个相关的功能是:

function REPORTS 
{ 
     # specify SFTP report path 
     SFTPDIR=/home/josh/domain/sftp/reports 
     [email protected] 
     CHKSFTP 
     typeset -l FILEDR=$tmp 
     typeset -l FILENM=reports.csv 
     typeset -l MIXFNM=$FILEDR/$FILENM 
     typeset -l NEWFILENM 
     if [[ -f $MIXFNM ]] 
     then 
       ls -al $MIXFNM | awk '{print $6,$7}' | while read MONTH DAY 
       do 
         NEWFILENM=$FILENM_${MONTH}_${DAY} 
         echo "---------------------------------------------" 
         echo "[ `date` ]" 
         echo "** $FNCTN file located on `hostname` ! **" 
         echo "moving: $MIXFNM to $SFTPDIR/$NEWFILENM" 
         mv $MIXFNM $SFTPDIR/$NEWFILENM 
       done 
     else 
       echo "---------------------------------------------" 
       # echo -e "[ `date` ] - No files with a name of $FILENM located in $FILEDR were found on [ `hostname` ] - Please check the respective operations for failures" | mailx -s "$FNCTN File not found [ `hostname` ]!" $ALERT_LIST 
       echo "[ `date` ]" 
       echo -e "WARNING: No files with a name of $FILENM located in $FILEDR were found on [ `hostname` ]! \n Email alert sent to $ALERT_LIST" 
     fi 
} 

function CHKSFTP 
{ 
## check for the SFTP directory before we continue, if it fails then we exit with failure 
if [[ ! -d $SFTPDIR ]] 
then 
     echo "Please Mount the CIFS share /home/josh/domain/sftp/reports" | mailx -s "SFTP Share Not Mounted [ `hostname` ]!" $ALERT_LIST 
     exit 1 
fi 
} 
+0

在将来,您不需要发布如此大的代码块。以最简单的形式显示问题,包括样本输入,预期输出,代码,当前输出以及您为什么使用当前代码的意见。另外,使用'[ksh]'标签来关注Q的读者。祝你好运。 – shellter

回答

1

所以,你可能希望在你的脚本是这样的:

FILENAME=$reports_(date +"%b_%d").csv 

因此,如果我们回应这个变量它表明:

echo $FILENAME 

reports_Aug_30.csv 

使用你的变量$ FILENAME(你可能会设置你的路径在其他地方更清洁)

只是做MV $ OLDPATH/$ FILENAME $ NEWPATH/$ FILENAME

有一点语法清理。

+0

上面的工作。 谢谢! – jk6411666109

相关问题