【问题标题】:Shell or Perl script to rename folders from a text file用于从文本文件重命名文件夹的 Shell 或 Perl 脚本
【发布时间】:2017-07-26 19:18:49
【问题描述】:

我正在尝试根据 .txt 文件中的前两列通过 shell 或 perl 脚本在 Linux 中重命名文件夹:

文本文件示例 重命名.txt

current_dir1     new_dir1
current_dir2     new_dir2
current_dir3     new_dir3
...
current_dir50    new_dir50

然后,shell/Perl 脚本将创建另一个文件,其中包含要根据列表中的内容运行的所有 mv 命令:

重命名文件夹.sh 或 .pl

#!/bin/ksh

mv /home/pete1/current_dir1 /home/pete1/new_dir1

mv /home/pete1/current_dir2 /home/pete1/new_dir2

mv /home/pete1/current_dir3 /home/pete1/new_dir3
........
mv /home/pete1/current_dir2 /home/pete1/new_dir2

【问题讨论】:

  • 问题是什么?
  • 你能展示一下你为此做了什么吗?那么你就会有一个合理的问题。
  • 这是一个脚本,而不是像rename这样的工具?

标签: linux bash shell perl


【解决方案1】:
#!/usr/bin/env bash
folder_path="/home/pete1/"
while read -r oldname newname; do 

     # remove echo if happy with result
     # if you remove echo it will rename
     echo mv "$folder_path/$oldname" "$folder_path/$newname"; 

done < rename.txt

如果您将done &lt; rename.txt 设置为done &lt; rename.txt &gt;somefile.sh,它将写入由echo 产生的所有命令

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 2015-07-13
    • 2014-08-03
    • 2014-05-01
    • 2015-10-12
    • 2014-01-06
    • 2010-12-04
    相关资源
    最近更新 更多