我的要求是提取在2个时间戳之间生成的所有文件(时间戳的用户输入应采用格式“YYYY-MM-DD HH:24MI:SS”。我使用START和END变量进行另一个查询我无法改变格式)
echo "Enter Start Time ( Format :- DD-MM-YYYY HH24:MI:SS )"
read START
start=$(echo $START|sed 's/-//g'|sed 's/://g'|sed 's/ //g'|sed 's ..$ ')
echo "Enter End Time (Format :- DD-MM-YYYY HH24:MI:SS )"
read END
end=$(echo $END|sed 's/-//g'|sed 's/://g'|sed 's/ //g'|sed 's ..$ ')
touch -t $start old.txt
touch -t $end new.txt
find <SOURCE> -name "*.sarm" -type f -cnewer old.txt ! -newernew.txt -exec cp -p "{}" <TARGET>\;
问题:我想在开始时间之前和结束时间之后10分钟拉取文件。这应该对用户透明。
示例:
用户将输入如下
``START ='2014-05-06 00:00:00'
END ='2014-05-06 02:00:00'`
复制了'2014-05-05 23:50:00' and '2014-05-06 02:10:00'
之间修改日期的文件。我对此感到困惑。请协助。
哈
答案 0 :(得分:0)
您可以使用日期进行时间计算,也不需要所有这些sed命令来实现您想要的效果:
root@lopobox:~# date -d "2014-05-06 00:00:00+000 -10 minutes" +%Y%m%d%H%M%S
20140505235000
root@lopobox:~# date -d "2014-05-06 00:00:00+000 +10 minutes" +%Y%m%d%H%M%S
20140506001000
PS。请注意,在这种情况下,您可能需要调整时区,我使用UTC +000
。如果我想调整为BST,我会使用+100
我希望这可以帮助您解决问题。