Python bash:删除文件名中除最新版本以外的所有文件

Python bash:删除文件名中除最新版本以外的所有文件,python,bash,sh,Python,Bash,Sh,我有10K+文件,如下所示。文件系统日期(导出时间)是所有文件的日期 YYY101R1.corp.company.org-RUNNINGCONFIG-2015-07-10-23-10-15.config YYY101R1.corp.company.org-RUNNINGCONFIG-2015-07-11-22-11-10.config YYY101R1.corp.company.org-RUNNINGCONFIG-2015-10-01-10-05-08.config LLL101S1.corp

我有10K+文件,如下所示。文件系统日期(导出时间)是所有文件的日期

YYY101R1.corp.company.org-RUNNINGCONFIG-2015-07-10-23-10-15.config
YYY101R1.corp.company.org-RUNNINGCONFIG-2015-07-11-22-11-10.config
YYY101R1.corp.company.org-RUNNINGCONFIG-2015-10-01-10-05-08.config

LLL101S1.corp.company.org-RUNNINGCONFIG-2015-08-10-23-10-15.config
LLL101S1.corp.company.org-RUNNINGCONFIG-2015-09-11-20-11-10.config
LLL101S1.corp.company.org-RUNNINGCONFIG-2015-10-02-19-05-07.config
如何从文件名中删除除文件最后版本(最后日期)之外的所有文件并将其重命名为

YYY101R1.corp.company.org.config  
LLL101S1.corp.company.org.config
谢谢。

UNIX shell命令

ls -t YYY101R1.corp.company.org*
将按时间顺序列出文件,最新的优先。抓取第一行作为“最新”,并创建一个符号(“软”)链接:

ln -s $latest YYY101R1.corp.company.org.config
对每个文件组重复此操作


这能让你走吗?如果没有,请发布您的代码并解释具体问题。请参见

我得到了类似的结果,首先获得按修改时间升序排列的所有文件的列表,然后获得它们的数量,显示所有文件减去最后2个文件,并将其传递给列表命令删除文件

ls-tr | wc-l

ls-tr|head-number|u文件数|u减去2|xargs rm


它有用吗?

让我们从生成文件列表的代码开始……我只有文件名中的正确文件日期和时间。所有文件的系统文件时间(导出日期和时间)都是相同的。因此,对于第一个命令,可能只需按字母顺序排序
ls | sort-t--k3
,这将按文件名中的日期对文件进行排序。是否有方法获取head-的文件组数?能否更具体一些?什么团体?Head命令用于打印文件的第一部分(默认情况下为前10行)。我只有文件名中的正确时间,因此按时间戳排序不起作用。这使它更容易一些:您的命名按顺序对文件进行排序。使用“ls-r”将最新文件放在第一位——按名称,而不是按时间戳。
FLast=`ls -tr 'YYY101R1.corp.company.org*' | tail -n 1`

mv ${FLast} YYY101R1.corp.company.org.config
rm -f YYY101R1.corp.company.org-RUNNINGCONFIG-*