【发布时间】:2016-11-30 01:49:07
【问题描述】:
我有一个 .csv 文件,其中看起来像这样:
unnamed_0711-42_p1.mov,day1_0711-42_p1.mov
unnamed_0711-51_p2.mov,day1_0711-51_p2.mov
unnamed_0716-42_p1_2.mov,day1_0716-42_p1_2.mov
unnamed_0716-51_p2_2.mov,day1_0716-51_p2_2.mov
我已编写此代码以将文件从字段 1 中的名称(例如 unnamed_0711-42_p1.mov)重命名为字段 2 中的名称(例如 day1_0711-42_p1.mov)。
csv=/location/rename.csv
cat $csv | while IFS=, read -r -a arr; do mv "${arr[@]}"; done
但是,此脚本仅在它和所有需要重命名的文件位于同一目录时才有效。以前没问题,但现在我需要在各个子目录中查找文件(无需将完整路径添加到我的 .csv 文件中)。
如何调整我的脚本,以便搜索子目录中的文件,然后像以前一样更改名称?
【问题讨论】:
-
能否重新表述第一行不清楚的内容?
-
已编辑,希望更清楚。
-
unnamed_0711-42_p1.mov的位置在哪里。脚本运行的地方是同一个地方吗? -
澄清一下,我当前使用的脚本(参见我的代码)与文件位于同一目录中 - 我需要的脚本需要递归搜索,即它与文件(请参阅我的问题的最后一段)