我在以下目录中有文件名:
ACCT_GA12345_2015-01-10.xml
ACCT_GA12345_2015-01-09.xml
ACCT_GDC789g_2015-01-09.xml
ACCT_GDC567g_2015-01-09.xml
ACCT_GDC567g_2015-01-08.xml
ACCT_GCC7894_2015-01-01.xml
ACCT_GCC7894_2015-01-02.xml
ACCT_GAC7884_2015-02-01.xml
ACCT_GAC7884_2015-01-01.xml
我想只在文件夹中包含最新文件。只使用文件名(不是日期戳)可以找到最新的文件。例如,ACCT 12345具有1/10和10的文件。 1/09。我需要删除1/09文件并且只有1/10文件,对于ACCT 789g只有一个文件所以我必须有该文件,ACCT 567g最新文件是1/09所以我必须删除1/08并有1/09。所以最新文件的组合应该是ACCT&该ACCT的最长日期。
我需要最终的文件列表:
ACCT_GA12345_2015-01-10.xml
ACCT_GDC789g_2015-01-09.xml
ACCT_GDC567g_2015-01-09.xml
ACCT_GCC7894_2015-01-02.xml
ACCT_GAC7884_2015-02-01.xml
有人可以在unix中帮助我使用此命令吗?任何帮助表示赞赏
答案 0 :(得分:0)
我做这样的事情....用ls命令测试开始,当你得到想要删除的内容时,然后做rm。
ls ACCT_{GDC,GA1}*-{09,10}.xml
这将列出以09或10结尾的任何GDC或GA1文件。您可以使用组合和不同的值进行播放,直到您拥有表明要删除的正确文件集。一旦你将ls改为rm,你应该是金色的。
有了更多信息,我可以帮助你。为了测试这一点,我做了:
touch ACCT_{GDC,GA1}_{01..10}_{05..10}.xml
这将使56个不同的虚拟文件具有不同的组合。创建一个目录,运行此命令,然后弄清楚。这是学习linux cli的最佳方法。你需要65%的命令,你将学习,理解,使用然后再也不用了...所以学习如何教自己如何使用手册页并设置一个位置来玩。