如何在shell中更改文件名?

时间:2017-11-07 03:04:36

标签: oracle shell unix

我想使用shell脚本更改文件名。

原始文件名为aa.docs_YYYYMMDDhhmmssbb.pdf_YYYYMMDDhhmmsscc.xxx_YYYYMMDDhhmmss等。 YYYYMMDDhhmmss目前是独一无二的。

目标文件名在Oracle DB Table中,并且为xxx.docs_YYYYMMDDhhmmss

那些具有相同的YYYYMMDDhhmmss

如何使用shell脚本从DB更改文件名?

1 个答案:

答案 0 :(得分:1)

尝试这样的事情。您应该根据源文件使用YYYYMMDDhhmmss的正确值。

for file_name in *_YYYYMMDDhhmmss
do
   file_type=`echo $file_name | cut -f2 -d '.' | cut -f1 -d '_'`
   file_date=`echo $file_name | cut -f2 -d '.' | cut -f2 -d '_'`

 db_filename=`sqlplus -s user/pwd <<INP
 set heading off
 set pagesize 0
 select file_name from yourtable where file_name like '%${file_type}%${file_date}';
 INP`

    mv ${file_name} ${db_filename}
done