删除文件夹中除特定序列的文件之外的所有文件

删除文件夹中除特定序列的文件之外的所有文件

我有一个文件夹,里面有大量遵循特定模式的 .dat 文件(即*_t_0.1000.dat, *_t_0.1001.dat .... , *_t_0.2000.dat)。我最终想要删除除以以下序列结尾的文件之外的所有文件:*_t_0.1000.dat, *_t_0.1005.dat,*_t_0.1010.dat ... *_t_0.2000.dat。需要注意的是,文件以始终具有 4 个有效数字的数字结尾。你能帮我吗?

答案1

尝试

ls "*_t_0.1??[12346789].dat"

检查过滤器是否工作,然后

rm "*_t_0.1??[12346789].dat"

如果是的话。如果规则在 2000 年停止但文件没有停止,请手动删除“*_t_0.2000.dat”。

否则也用 [12] 或 ? 替换 1。

另一种方法是使用如下 4 个命令:

 ls "xy_t_0."{1001..1096..5}".dat" 
 ls "xy_t_0."{1002..1097..5}".dat" 
 # you get it? 

再次,如果列表正确,则用 rm 替换 ls。

相关内容