unix - 移动具有日期编码名称的文件集

标签 unix ubuntu mv

我有一组包含日期的文件。

让我们称呼他们:

 a20120528_120001.log
 b20120528_120003.log
 (name)(year)(month)(day)_(hour)(minute)(second).log

同时移动这两个文件很容易:

 mv *20120528_12* file/

但现在我有一种情况,我想在同一天移动几个小时的文件,即:

 a20120528_120001.log
 b20120528_120003.log
 a20120528_130001.log
 b20120528_130003.log
 a20120528_140001.log
 b20120528_140003.log

现在,如果我想转移所有这些,我可以在当天完成:

 mv *20120528* file/

但是如果我只想移动 12 和 13 小时,但不包括 14,我该怎么办。

请注意,这需要足够通用,以便我可以输入日期,因为这将扩展到多天使用,其中每天有 24 条日志,每天有几条(3-8 条)将被排除在外.

我该怎么做?

最佳答案

您可以使用范围:

mv *20120528_1[23]* file/

要排除 3-8 中的所有内容,请使用稍微复杂一点的方法:

mv *20120528_{0[0-29],[12]*}*
  • [0-29] 分解为范围 0-29
  • {A,B} 扩展为 AB

关于unix - 移动具有日期编码名称的文件集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11713721/

相关文章:

linux - 如何在脚本中运行 .profile

linux - 理解Linux中的SMP概念

linux - upstart - chdir 不识别变量

git: mv 命令

linux - 如何从其他 shell 切换到 bash shell?

c++ -/usr/lib/x86_64-linux-gnu/libstdc++.so.6 : version CXXABI_1. 3.8' 未找到

python - 无法安装 OpenAI 健身房

git - 是否有可能 `git status` 只有修改过的文件?

linux - 在 Linux 中保留扩展名的同时重命名文件?

linux - 使用 mv 命令 linux 时输出文件名