使用文本文件作为源重命名文件

在一个文件夹中,我有600个文件,编号从001到600.它看起来像foo_001.bar。在一个文本文件中,我有这个文件夹的标题&。现在我想用文本文件中相应的001标题foobar重命名foo_001.bar。使用文本文件作为源重命名文件

但我不知道如何在Linux Mint上正确执行此操作。有人可以帮我或给我一个小费吗?

titles.txt的内容看起来像这样。数字和标题之间有一个制表符(可以轻松修改)。

001 title of 1 

002 this is 2

003 and here goes 3

004 number four

005 hi this is five

etc

该文件夹的内容如下所示。没有例外。

file_001.ext 

file_002.ext

file_003.ext

file_004.ext

file_005.ext

etc

回答:

通过与read您的文件只是循环,得到了分离式柱与

awk

相应cut(谢谢你,@Jack)和mv您的文件。在这个非常简单的实现中,我假定包含新名称的文本文件位于./filenames,并且您的脚本是从包含文件的目录中调用的。

#!/bin/bash 

while IFS='' read -r line || [[ -n "$line" ]]; do

NR=$(echo "$line" | cut -f 1)

NAME=$(echo "$line" | cut -f 2)

if [ -f "foo_${NR}.ext" ] ; then

mv "foo_${NR}.ext" "$NAME"

fi

done < filenames

以上是 使用文本文件作为源重命名文件 的全部内容, 来源链接: utcz.com/qa/266964.html

回到顶部