我有类似的文件名
我目录中的ABCD20140207090842 ABCD20140207090847 ABCD20140207090849 ABCD20140207090850 ABCD2014556644219268 ABCD20140508525691 tf
。
我想搜索具有特定模式的文件。即 FileNameYearMonthDayHourMinSec.txt
注意:文件tf
和ABCD2014556644219268
不应匹配。
回答确切的模式将不胜感激。
答案 0 :(得分:0)
基于NAME,然后是DATE.txt,我得到了这个:
find . -regex ".*[19|20][0-9][0-9][0-1][0-2][0-3][0-9][0-2][0-9][0-6][0-9][0-6][0-9]\.txt$"
但这并不能解释闰年,并且可以与2月31日等日期相匹配。
答案 1 :(得分:0)
改变主意。无论闰年与否,这都是剧本。
使用GNU日期来识别日期
for file in *.txt
do
time=${file%.*} # remove suffix and get ABCD20140207090842
time=${time:(-14)} # get the date/time 20140207090842
time="${time:0:4}/${time:4:2}/${time:6:2} ${time:8:2}:${time:10:2}:${time:12}" # convert time to: 2014/02/07 09:08:42
date -d "$time" >/dev/null 2>&1 && echo $file
done
ABCD20140207090842.txt
ABCD20140207090847.txt
ABCD20140207090849.txt
ABCD20140207090850.txt