我正在尝试在UNIX中执行以下操作:
每天我都会以ONSITE_EXT_20170707
格式获取一个新文件,其中数字代表日期。所以第二天我将收到一个文件ONSITE_EXT_20170708等。我的目标是获取此文件并在没有日期的情况下重命名。我用了
mv ONSITE_EXT_$(date +%Y%m%d) ONSITE_EXT.
然而,有些日子我可能没有得到一个新文件所以我需要做的是首先检查最新文件(具有最新日期的文件)是什么,只重命名该文件。这还应该检查是否有任何文件可用。
首先非常感谢任何帮助。
答案 0 :(得分:1)
假设你在同一个目录。文件到达的地方。
$ cat file_move.sh
#!/bin/bash
today_file=ONSITE_EXT_$(date +%Y%m%d)
latest_file=`ls -r|head -1` #get the latest file in directory
file_part=`echo $latest_file |cut -c1-10` #get only ONSITE_EXT part of file
if [ ! -z $today_file ] ; then #check if today_file variable is not empty i.e. todays file has arrived
mv ONSITE_EXT_$(date +%Y%m%d) ONSITE_EXT #move the file
else
mv $latest_file $file_part #if todays file isn't arrived. then move latest file only.
fi