2017-07-26 167 views
-2

我想换一种方式通过基于前两列中的.txt文件shell或Perl脚本,重命名文件夹的Linux看起来牛逼重命名文件夹Shell或Perl脚本,从文本文件

rename_folders.sh或.PL

:文本文件 rename.txt

current_dir1  new_dir1 
current_dir2  new_dir2 
current_dir3  new_dir3 
... 
current_dir50 new_dir50 

然后壳/ Perl脚本将创建一个基于什么在列表中的所有MV的命令运行另一个文件示例

#!/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 
+2

问题是什么结果呢? –

+0

你能向我们展示你所做的一切吗?那么你会有一个合法的问题。 – zdim

+0

这是一个脚本,而不是像'rename'这样的工具? –

回答

0
#!/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 < rename.txtdone <rename.txt>somefile.sh将会写入所有命令这是echo