我试图从一个文件夹移动一个非常具体的命名文件到另一个(最终被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
}
在将来,您不需要发布如此大的代码块。以最简单的形式显示问题,包括样本输入,预期输出,代码,当前输出以及您为什么使用当前代码的意见。另外,使用'[ksh]'标签来关注Q的读者。祝你好运。 – shellter