我有按时间步命名的数据文件,例如:
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]