【问题标题】:rename file names with recursion with variable使用变量递归重命名文件名
【发布时间】:2016-04-18 09:45:57
【问题描述】:

我在文件夹 (git) 中有文件,标题如下

 OrderReturnPartial_EN_${et.mode}.html

如何重命名目录(和内部文件夹)中的所有文件

OrderReturnPartial_EN_${et.mode}.html
OrderReturnPartial_EN_my_mode.html

我的尝试是这样的

在乞讨中有一个变量

read newmode
default="et.mode"

find /tmp/$newmode -name "*et.mode*" -print | while read FNAME;
do
mv "$FNAME" "${FNAME//$default/$newmode}";
done

我也试过

sed -i 's/{et.mode}/$newmode/g' $FNAME

没用

【问题讨论】:

  • “不起作用”是什么意思?当newmode=my_mode 时,mv 命令应将OrderReturnPartial_EN_${et.mode}.html 重命名为OrderReturnPartial_EN_${my_mode}.html
  • 不,我需要另一种方式
  • 我需要将文件 _EN_${et.mode}.html 重命名为 _EN_my_mode.html
  • 然后设置default='${et.mode}'

标签: sed mv


【解决方案1】:

如果要替换${et.mode},请使用完整的字符串作为变量值:

default='${et.mode}'
f='OrderReturnPartial_EN_${et.mode}.html'
echo "${f//$default/my_mode}"

【讨论】:

    猜你喜欢
    • 2017-08-18
    • 2020-11-23
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    相关资源
    最近更新 更多