我正在为使用KornShell(ksh)的目录执行清理脚本。 我将文件名称前缀保留在文本文件中。在ksh中,我想从文件中读取前缀,并匹配文件的模式,并保存并压缩(.Z)目录中匹配文件的最新四个版本。我想删除其余的版本。原因我是这样做的,因为这些文件是累积的,我只想保留最新的文件。保留最新的4个版本的文件并删除其余的版本
我的文本文件中有这样的前缀:
- ABCD
- XYZ
- PQR
我的目录中有这样
- ABCD不同的名称很多文件###。YYYYMMDDXXXXXX.txt
- ABCD ###。YYYYMMDDXXXXXX.txt
- ABCD ###。YYYYMMDDXXXXXX.txt(这样具有不同时间戳)
- XYZ ###。YYYYMMDDXXXXXX.dat
- XYZ ###。YYYYMMDDXXXXXX。 DAT
- XYZ ###。YYYYMMDDXXXXXX.dat
- str12.YYYYMMDDXXXXXX.txt
- qwefd.YYYYMMDDXXXXXX.dat
在此目录中,因为我已经前缀ABCD, xyz在文本文件中,所以我想用该前缀压缩文件的最新4个版本,并用该前缀删除剩余的版本。我不想触摸文本文件中未提及的文件。 我想在下次运行脚本时同样保留最新的文件版本并删除剩余的版本(因为下一次会有以前的压缩文件)。在任何时候我只需要4个最新的文件版本。我可以删除以前压缩的文件。
我需要一个ksh脚本,并且任何帮助都是可观的。
为什么不你为此使用'logrotate'? – janos
我想匹配模式作为上述文件名称..文件扩展名也对我来说很重要。' – user2496132