我将下列日期和时间保存为文件名:
/app/sql/20190101_2000.sql
/20190115_1423.sql
/20190222_1255.sql
/ etc...现在,我想做一个脚本,根据它的名称,为我提供最新的文件。我无法确定最后的编辑或创建日期,因为有时会导入这些文件,并从它的导入中获取日期时间,而不是从其创建日期。
格式是,正如您可以看到的YYYYMMDD_hhmm.sql
到目前为止我所得到的(对不起,我不是巴什的专家)
newestfile="000000000000"
for file in *.sql ; do
filedate="${file%.sql}" # remove the '.sql'
filedate="${filedate//_}" # remove the underscore, so I can compare
if [[ "$filedate" -gt "$newestfile" ]] ; then
newestfile="$filedate"
fi
done
echo "highest file found: $newestfile"问题是我不能再往前走了。现在我想将这个“最新”文件导入mysql,但我无法将下划线移回原来的位置。如果我一开始不删除下划线,我就无法与-gt进行比较。
我的代码看起来会像这样继续下去:
mysql -uuser -p1234 my_database < $newestfile若要导入sql转储,请执行以下操作。
有什么更好的解决办法吗?
发布于 2019-05-16 13:55:25
你可以整理你的文件并得到第一个
newestfile=$(ls /app/sql/$.sql | sort -r | head -n 1)发布于 2019-05-16 13:54:50
那这个呢?
ls -R *.sql | sort | tail -1ls -R在子目录中执行ls。
sort进行排序。
最后一个是tail -1。在对结果进行排序时,将显示日期最高的结果。
https://stackoverflow.com/questions/56170105
复制相似问题