【问题标题】:How to rename a directory in a specific way. BASH如何以特定方式重命名目录。重击
【发布时间】:2019-06-07 11:19:21
【问题描述】:

我有一个名为 20190606_151020 的目录。我想在 files_2019-06-06_15-10-20 中重命名它。以后我不知道当前目录名,但它会是那里唯一的目录,而且我也知道我需要在 files_2019 之后> 应该是 -

如何在 BASH 脚本中执行此操作?

我在 bash 中处理字符串非常糟糕:(

【问题讨论】:

    标签: linux bash directory


    【解决方案1】:

    您将使用 awk 获得所需的输出。

    echo "20190606_151020" | awk 'BEGIN{FIELDWIDTHS="4 2 2 3 2 2"}{print "file_"$1"-"$2"-"$3$4"-"$5"-"$6}'
    

    【讨论】:

      【解决方案2】:

      你的意思是这样的?

      #!/bin/bash
      
      # find the special directory
      name="$(find . -type d -printf %P)"
      
      # split name into parts
      year="${name:0:4}"
      month="${name:4:2}"
      day="${name:6:2}"
      hour="${name:9:2}"
      min="${name:11:2}"
      sec="${name:13:2}"
      
      # rename directory
      mv "$name" "files_${year}-${month}-${day}_${hour}-${min}-${sec}"
      

      用法

      进入您的特殊目录所在的目录并开始 脚本。

      【讨论】:

      • 这完美!十分感谢。我接受了你的回答!
      猜你喜欢
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 2016-06-27
      • 2020-01-27
      • 2011-05-28
      • 2012-02-03
      • 2011-11-02
      相关资源
      最近更新 更多