Bash - 从数据库值递归重命名文件

问题描述 投票:-1回答:1

我对Linux很新。

我有一个文件夹,有大约1000个文件,文件名存储在数据库下。

我想要做的是用同一数据库中的另一个值递归重命名所有这些。

我的数据库结构

oldVal      | newVal
oldFileName | newFileName

什么是最短和最有效的方法?

提前感谢您的提示。

linux bash shell recursion
1个回答
1
投票

可以将数据库信息导出到文本文件中吗?如果是,对于MySQL数据库,您可以尝试这样做。

首先,在MySQL中执行此查询...

SELECT field1,field2
FROM table
INTO OUTFILE '/your/path/with/files/to/rename/export.txt'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

之后,转到/ your / path / with / files / to / rename / folder并粘贴此...

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
LIST=`cat /your/path/with/files/to/rename/export.txt`
for i in $LIST ;
do
 field1=`echo $i | cut -d',' -f1`
 field2=`echo $i | cut -d',' -f2`
 \mv "./"$field1 "./"$field2
done
IFS=$SAVEIFS
© www.soinside.com 2019 - 2024. All rights reserved.