Linux 在目录中的文件名中查找匹配项
我在一个目录中有以下文件Linux 在目录中的文件名中查找匹配项,linux,awk,Linux,Awk,我在一个目录中有以下文件 -rw-r--r--. 1 svcamt pharpan 212 Feb 16 17:04 ManPOC_Process_Log.2017_02_16 -rw-r--r--. 1 svcamt pharpan 212 Feb 17 17:04 ManPOC_Process_Log.2017_02_17 -rw-r--r--. 1 svcamt pharpan 271 Feb 18 17:04 ManPOC_Process_Log.2017_02_18 -rw-r--r-
-rw-r--r--. 1 svcamt pharpan 212 Feb 16 17:04 ManPOC_Process_Log.2017_02_16
-rw-r--r--. 1 svcamt pharpan 212 Feb 17 17:04 ManPOC_Process_Log.2017_02_17
-rw-r--r--. 1 svcamt pharpan 271 Feb 18 17:04 ManPOC_Process_Log.2017_02_18
-rw-r--r--. 1 svcamt pharpan 212 Feb 18 17:04 ManPOC_Process_Log.2017_02_19
-rw-r--r--. 1 svcamt pharpan 212 Feb 20 17:04 ManPOC_Process_Log.2017_02_20
-rw-r--r--. 1 svcamt pharpan 334 Feb 21 17:04 ManPOC_Process_Log.2017_02_21
-rw-r--r--. 1 svcamt pharpan 212 Feb 22 17:04 ManPOC_Process_Log.2017_02_22
-rw-r--r--. 1 svcamt pharpan 212 Feb 23 17:04 ManPOC_Process_Log.2017_02_23
-rw-r--r--. 1 svcamt pharpan 213 Feb 24 17:04 ManPOC_Process_Log.2017_02_24
-rw-r--r--. 1 svcamt pharpan 272 Feb 25 17:04 ManPOC_Process_Log.2017_02_25
-rw-r--r--. 1 svcamt pharpan 213 Feb 26 17:04 ManPOC_Process_Log.2017_02_26
-rw-r--r--. 1 svcamt pharpan 213 Feb 27 17:04 ManPOC_Process_Log.2017_02_27
-rw-r--r--. 1 svcamt pharpan 213 Feb 28 17:04 ManPOC_Process_Log.2017_02_28
我想要所有早于2017年02月26日的文件。这里老的意思是25,24等这是我的代码到目前为止
dir='/logs/Manpoc/'
check=`date -d "- 12 days" "+%F"`
for f in ls "$dir"*
do
var= "$($f|awk '{print $9}'| cut -d'_' -f 2)"
if [ $var < $check ]
then
echo $f
fi
done
dir='/logs/Manpoc/'
检查=`date-d“-12天”“+%F”`
对于ls“$dir”中的f*
做
var=“$($f|awk'{print$9}'| cut-d'-f 2)”
如果[$var<$check]
然后
回声$f
fi
完成
这并没有给我预期的结果。如何获取所需记录?只需使用查找:
find /logs/Manpoc -type f -ctime +12
如果不需要子目录:
find /logs/Manpoc -maxdepth 1 -type f -ctime +12
使用一些格式:
find /logs/Manpoc -type f -ctime +12 -printf "%f\n"
关于maxdepth的一个小评论:在我的Debian中,如果maxdepth不在find/directory之后,它会给我一个错误。似乎-maxdepth必须是第一个参数。这给了我所有在26日之后创建的记录,但是如何得到所有旧的记录。例:第25、24条记录抱歉,您需要+12,正在修复。