删除具有特定语法的文件

删除具有特定语法的文件

我有几个遵循以下语法的文件:

  • _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

在bash中:

shopt -s extglob
rm !(*_2010-??-01_00h10m.*)

答案2

非常幼稚的方式

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

相关内容