小数点の上の数字で指定されたファイルを削除する

小数点の上の数字で指定されたファイルを削除する

時間ステップごとに名前が付けられたデータファイルがあります。たとえば、次のようになります。

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

ご覧のとおり、一部のデータファイル名には小数点以下の2桁がありますが、他のデータファイル名には小数点1桁または小数点桁がありません。小数点以下2桁(例:0.01、0.02など)を持つ名前のファイルのみを削除し、すべてのファイルは小数点以下2桁未満に保ちたいと思います。だから最終的にファイルを次のように表示したいと思います。

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

しかし、残りは削除してください。

小数点以下の数字で指定されたファイルを削除する方法は?

答え1

何を求めているのか分からない。あなたは両方とも頼む削除する小数点以下2桁未満のファイル維持する小数点以下 2 桁未満のファイルです。

bashシェルを使用するとします。答えはシェルによって異なります。

欲しいなら削除する小数点以下 2 桁以下のすべてのファイル:

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

欲しいなら維持する小数点以下 2 桁以下のすべてのファイル:

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

答え2

これ:

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

ドットの前に1つ以上の数字と小数点以下の2桁のすべてのファイルが削除されます。

extglogは対話型シェルに対してデフォルトで設定されているため、bashでは機能しますがスクリプトで使用する必要がある場合は、次のようにします。

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

関連情報