加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux根据输入文件重命名文件

发布时间:2020-12-14 01:02:02 所属栏目:Linux 来源:网络整理
导读:我需要在 Linux中重命名数百个文件,以便从命令行更改每个文件的唯一标识符.为了举例,我有一个包含以下内容的文件: old_name1 new_name1old_name2 new_name2 并需要将名称从新ID更改为旧ID.文件名包含ID,但也有额外的字符.因此,我的计划最终是: abcd_old_na
我需要在 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

在这里使用重命名显然是相当有用的,但是我正在努力研究如何迭代所需名称更改的文件并将其作为输入传递给重命名?

编辑:为了澄清,我希望制作数百个不同的重命名命令,需要进行的不同更改列在文本文件中.

如果已经回答道歉,我有一个很好的打猎,但找不到类似的情况.

解决方法

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,并使用$new_name重命名替换$old_name的文件,而不更改文件名的其余部分.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读