将文件名与表中的列进行比较,如果找到对应关系,则根据另一列将其重命名

将文件名与表中的列进行比较,如果找到对应关系,则根据另一列将其重命名

我在一个目录(在 bash 中)中有一组广泛的文件,其命名(不方便)如下:

COMMONSTUFF_X_Y_**VARIABLE-IDENTIFIER**_COMMONSTUFF

我还有一个表,其中一列包含VARIABLE-IDENTIFIER(注意,不是全名,只有变量标识符部分),另一列中有一个简单的唯一名称(在同一行上关联),我想将其替换为复杂的名称对于目录中的文件来说不方便。

我想我可以有一个脚本来读取文件名,检查它是否与表的特定列中的变量标识符对应,如果这是真的,则从另一列读取我需要的名称并重命名它具有此名称的文件。

我是 shell 脚本新手,所以我不知道从哪里开始,但我认为这是可行的。

答案1

我会这样做,在awk

awk -F, '{system("mv COMMONSTUFF_X_Y_" $1 "_COMMONSTUFF " $2)}' mycsv.csv

其中 1 是 VARIABLE-IDENTIFIER 的(1 索引)列号,2 是简单唯一名称的列号。

相关内容