2014-02-09 31 views
1

我有大約1000多個不同文件擴展名的文件。我還有一個製表符分隔的文本文件,其中包含舊名和新文件名並列。例如:列表上兩列的批處理文件名文件

old  new 
file1 entirely_new_name_for_file_1 
file2 entirely_new_name_for_file_2 
file3 entirely_new_name_for_file_3 

如何使用shell腳本批量重命名所有這些文件?

回答

4

如果您已經有他們在文件中,然後運行一個像這樣的循環:

while read old new; do 
    mv "$old" "$new" 
done < "file" 
+0

而完成的。完美的作品。花了我自己的2個小時才能完成這項工作。但我認爲這是值得的:0 – user2476714

+0

很高興知道它解決了。 – anubhava

+1

你需要接受它,如果它解決了你的問題。 – BMW

1

可以使用HEREDOC還有:

while read old new; do 
    mv $old $new 
done <<___HERE 
    file1 entirely_new_name_for_file_1 
    file2 entirely_new_name_for_file_2 
    file3 entirely_new_name_for_file_3 
___HERE 
0

這裏的另一種方法。我不會用它自己,感覺風險:

sed 's/^/mv /' filename | sh 

如果第一行實際上是一個標題,然後sed '1d;s/^/mv /'

相關問題