删除小数点以上以数字命名的文件

删除小数点以上以数字命名的文件

我有按时间步命名的数据文件,例如:

0.01  
0.02  
0.03  
0.04  
0.05  
0.06  
0.07  
0.08  
0.09  
0.1  
0.11
...
0.99
1
1.01
...
1000

正如您所看到的,一些数据文件名小数点后有两位数字,而其他数据文件名有 1 位小数或没有小数位。我只想删除具有 2 位小数位名称(例如 0.01、0.02 等)的文件,同时保留所有小于 2 位小数的文件。所以最后,我想将文件标记为:

0.1
0.2
...
0.9
1
1.1
...
1000

但删除其余的。

如何删除小数点以下以数字命名的文件?

答案1

我不确定你在问什么。你要求两者消除小数点后少于 2 位的文件保持小数点后少于 2 位的文件。

假设您使用的是 bash shell。对于不同的 shell,答案会有所不同。

如果你想消除小数点后少于 2 位数字的所有文件:

shopt -s extglob
rm !(*.[0-9][0-9])

如果你想保持小数点后少于 2 位数字的所有文件:

rm *.[0-9][0-9]

答案2

这:

$ rm +([0-9]).[0-9][0-9]

将删除点前有一位(或多位)数字且恰好两位小数的所有文件。

这应该在 bash 中运行,因为默认情况下为交互式 shell 设置了 extglog,但如果您需要在脚本中使用它,请使用以下命令:

shopt -s extglog
rm +([0-9]).[0-9][0-9]

相关内容