Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在目录中的文件名中查找匹配项_Linux_Awk - Fatal编程技术网

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,正在修复。