我需要在Linux中重命名数百个文件,以从命令行更改每个文件的唯一标识符。为了举例,我有一个包含以下内容的文件:
old_name1 new_name1
old_name2 new_name2
并且需要将名称从新ID更改为旧ID。文件名包含ID,但也包含其他字符。因此,我的计划最终是:
abcd_old_name1_1234.txt ==> abcd_new_name1_1234.txt
abcd_old_name2_1234.txt ==> abcd_new_name2_1234.txt
rename
在这里使用显然是很有帮助的,但是我正在努力研究如何遍历所需名称更改的文件并将其作为输入传递给rename
?
编辑:为澄清起见,我正在寻找数百个不同的重命名命令,需要进行的不同更改在文本文件中列出。
抱歉,如果这个问题已经得到解决,我一直在追捕,但找不到类似的情况。
while read -r old_name new_name; do
rename "s/$old_name/$new_name/" *$old_name*.txt
done < file_with_names
通过这种方式,您可以从file_with_names中读取ID,并重命名文件$old_name
,$new_name
而其余文件名保持不变。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句