FOOXXという名前のファイルが20個あるとします。XXはファイルの番号です(例:01、02など)。
現時点では、番号10未満のすべてのファイルを削除する場合、これは簡単で、ワイルドカードを使用するだけです(例:rm FOO0 *)。
ただし、13〜15の範囲の特定のファイルを削除する場合は、これがさらに難しくなります。
rm FPP [13-15]が機能せず、すべてのファイルを削除するかどうかを尋ねられます。 Likewse rm FOO1 [3-5]は、FOO1で始まるすべてのファイルを削除したい
それで、このようなファイルの範囲を削除する最良の方法は何ですか?
私はbashとzshの両方を試してみましたが、そのような基本的なタスクではそれほど違いはないと思いますか?
Bashでは次を使用できます。
rm FOO1 {3..5}
または
rm FOO1 {3,4,5}
fOO13、FOO14、FOO15を削除します。
Bash展開ブレースは文書化されています here 。
今後の読者のために、find
コマンドを使用してファイルを削除することもできます。私は同様の問題のためにこれで解決しました:
find . -type f -regex '...' -delete
しかし、選ばれた答えは、この質問に対する最も単純な回答です。
ls | grep regex | xargs rm