我有大約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腳本批量重命名所有這些文件?
我有大約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腳本批量重命名所有這些文件?
如果您已經有他們在文件中,然後運行一個像這樣的循環:
while read old new; do
mv "$old" "$new"
done < "file"
可以使用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
這裏的另一種方法。我不會用它自己,感覺風險:
sed 's/^/mv /' filename | sh
如果第一行實際上是一個標題,然後sed '1d;s/^/mv /'
而完成的。完美的作品。花了我自己的2個小時才能完成這項工作。但我認爲這是值得的:0 – user2476714
很高興知道它解決了。 – anubhava
你需要接受它,如果它解決了你的問題。 – BMW