特定の構文を持つファイルを削除する


0

この構文に従うファイルがいくつかあります。

  • _yyyy-mm-dd_hhhmmm

例:

  • _2010-01-01_00h10m。
  • _2010-01-01_01h10m。
  • _2010-01-01_02h10m。
  • _2010-01-01_03h10m。
  • ...
  • _2010-01-01_23h10m。
  • _2010-02-01_00h10m。
  • _2010-02-01_01h10m。
  • _2010-02-01_02h10m。
  • ...
  • _2010-02-01_23h10m。
  • ...
  • _2010-12-01_23h10m。

このファイルだけを残したい

  • _2010-01-01_00h10m。
  • _2010-02-01_00h10m。
  • _2010-03-01_00h10m。
  • ...
  • _2010-12-01_00h10m。

他の人を削除します。または、安全のためにそれらをサブディレクトリに移動します。

誰かがこの課題に頭の良いライナーを持っていますか?

ありがとう、Udo


回答:



1

とても素朴な方法

mkdir keep_these
mkdir remove_these
mv *_00h10m* keep_these
mv *.* remove_these

またはワンライナー

ls * | grep -v "_00h10m" | while read a; do mv $a /tmp; done

素朴な:) - >しかし良い - >サブディレクトリを必要としない解決策もありますか。
udo

1
@udo - はい置き換えます mv $a /tmp 最後の例では `\ rm $ a 'と
Nifle
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.