【问题标题】:Rename multiples files stored in variable using mv comman in Bash在 Bash 中使用 mv 命令重命名存储在变量中的多个文件
【发布时间】:2021-02-11 14:05:31
【问题描述】:

我对 Bash 脚本非常陌生,并且正在做一项家庭作业,我需要重命名多个文件,这些文件的路径存储在 python 列表中。 old_names 和 new_names 列表分别包括旧文件路径和新文件路径。我知道在 Bash 中有多种方法可以做到这一点,但我需要使用“mv”命令来完成这个特定的任务。另外,最终我需要将函数传递给 python 子进程模块来重命名文件。

  old_names = ['/data/jane_profile_07272018.doc','/data/jane_pic_07282018.jpg','/data/jane_contact_07292018.csv']

  new_names = ['/data/jdoe_profile_07272018.doc','/data/jdoe_pic_07282018.jpg','/data/jdoe_contact_07292018.csv']

下面是我的代码:

  for file in "$old_names"; 
  do mv "$file" "$new_names";
  done

我不断收到语法错误,如果有人能指出我做错了什么,我将不胜感激。

【问题讨论】:

  • Cat 用于打印文件的内容,而不是变量。
  • 如果我删除 cat 仍然会出现语法错误
  • 将路径放入数组中,然后在数组上循环。
  • 您初始化数组的语法是错误的。在bash 中,数组被初始化为arrayname=(word1 word2 word3 ...)

标签: bash variables


【解决方案1】:

正常使用变量时不需要语音标记,不需要;。学习缩进会帮助你更好地阅读代码。

您应用了更改的代码如下,

for file in $old_names
do
    mv $file $new_names
done

解释这一点的网页位于以下链接,https://ryanstutorials.net/bash-scripting-tutorial/bash-loops.php

【讨论】:

    猜你喜欢
    • 2012-12-07
    • 2019-09-02
    • 2014-06-08
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 2020-08-14
    • 2020-07-01
    • 2017-11-28
    相关资源
    最近更新 更多