【问题标题】:Renaming files containing digits cygwin重命名包含数字的文件 cygwin
【发布时间】:2012-08-15 11:59:33
【问题描述】:

我在我的文件夹中存储了一些图像,其中一些图像的文件名类似于12412421_3843114_12412412。有 200-300 个这样的文件,我希望能够分配一个简单的 a-zA-Z 序列,即没有数字或下划线。如何在 cygwin 中做到这一点?

编辑我希望文件名看起来像abdllwlaslf,但它们需要没有下划线。我知道当我不使用下划线时我的选择是有限的,但就我而言,这就是我所需要的。

【问题讨论】:

  • 您能否详细说明您要查找的内容?您想在该格式的所有文件名前面加上一些东西吗?将数字映射到特定字母?以您在问题中粘贴的文件名为例,您希望它完成后的样子?

标签: linux file cygwin rename


【解决方案1】:

假设只是将 0 替换为 a,将 1 替换为 b 等,您可以使用 tr:

$ echo 42344234_1341264574_2134234 | tr 0123456789_ abcdefghij
ecdeecdejbdebcgefhejcbdecde

而不是echo,只需通过管道传输您的文件名并使用结果进行重命名。

【讨论】:

    【解决方案2】:

    它不会产生非常漂亮的文件名,但从技术上讲,这可以满足您的需求...

    for i in $( find . -regex ".*/[0-9_]+$" ) ; do mv $i $( basename $i | sed 'y/0123456789_/ABCDEFGHIJK/' ) ; done

    使用上述方法,名为12412421_3843114_12412412 的文件将变为BCEBCECBKDIEDBBEKBCEBCEBC。如果您愿意,可以调整 sed 替换中的字符。

    请注意,上述命令必须在相关文件夹中运行。

    在真正的 Linux 系统上,这可以使用 rename 命令更有效地完成,但我在 Cygwin 中使用 rename 并没有取得很好的成功。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 2022-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多