如何在bash中重命名列表中的文件?

时间:2010-05-23 23:19:20

标签: bash rename file-rename

我有一个包含如下文件名的文件:

my_cool_file.xxx
my_cool_file2.xxx
my_cool_file3.xxx

我有一个文件夹:

some_file.xxx
some_file2.xxx
some_file3.xxx

我想有一个bash脚本从文件名文件中取一行并重命名该文件夹中的一个文件。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:2)

注意:这个答案一般不太好,但它解决了OP的问题。

所有文件是否以_file.xxx或_fileN.xxx结尾?

基本上,你想改变文件名的前缀是什么?

假设我正确理解您的问题,并且没有数字的文件在file_list.txt 中是最后一个,以下应该可以解决这个问题


COUNTER=0
for FILE in `ls *.xxx | sort`; do
    COUNTER=$(($COUNTER+1))
    echo Moving $FILE to `sed -n ${COUNTER}p file_list.txt`
    #mv "${FILE}" `sed -n ${COUNTER}p file_list.txt`
done

如果您希望实际移动发生,请在mv行注释。