我很感激你的帮助,我是比较新的这里。
我拥有以下的目录结构。
Main_dir
|-Barcode_subdirname_01\(many further subfolders)\filename.pdf
|-Barcode_subdirname_02\(many further subfolders)\filename.csv
- 有许多子文件夹中包含着数千个文件。
- 第一层子目录的名称是所有文件共用的条形码。例如,123456_dirname。
- 我想将所有子文件夹中的文件复制到主文件夹,并且根据第一个子目录名称和条形码重新命名这些文件为subdirname_barcode_filename.extension的格式。
我试图编写一个bash脚本在主文件夹中执行此操作,但是我的编程能力已经达到了极限(我接受任何其他可行的方法)。
首先需要识别第一层子文件夹
find -maxdepth 1 -type d |
然后按照下划线分隔符切割出前两部分的内容
cut -d\_ -f1 > barcode
最后查找子文件夹内的文件并对其进行重命名和移动
find -type f -print0 | while IFS= read -r filenames; do newname="${barcode/sudirname/filename\/}" mv "filename" "main_dir"/"newname" done
我无法使其工作,可能走错了方向。