猿问

如何快速修改多个文件夹中的同名子文件?

背景: 有a, b两个文件夹, a, b下分别有50个文件夹, 每个文件夹都有个视频文件叫video.mp4

问题: 如何循环修改这些文件名, 比如修改为: video1.mp4, video2.mp4......然后存到一个文件夹, 比如文件夹c里?

虽然我用java写应该可以实现, 但是感觉太麻烦. 网上说貌似awk可以实现, 效率高, 不过重命名怎么做呢, 捣鼓半天也只能print出来, 或者有其他语言能高效完成的也行, 能有个实例就太感谢了~

感谢python版本的回答, 不过用awk怎么做呢?


智慧大石
浏览 1352回答 4
4回答

慕运维8079593

find -name 'video.mp4' | nl -w1 | sed 's/([0-9]+)t(./video.mp4)/2 c/video1.mp4/' | xargs -n 2 cpsed那块拼字符串,用awk也能做到。

侃侃尔雅

简单实现一个,假设a, b下只有一级子目录:import globimport shutilindex = 1for dir in ['./a', './b']:    for f in glob.glob('%s/*/video.mp4' % dir):        shutil.copy(f, './c/video%d.mp4' % index)        index += 1

喵喔喔

#!/bin/bashregex="mp4"i=1path=~/Desktop/videofind "." -type f | grep $regex |  while read linedo    newName=$i-$name;    cp $line $path/$newName;    i=`expr $i + 1`;done自问自答, 写了个shell的实现, 和python差不多, 然而awk还是不太会用啊
随时随地看视频慕课网APP

相关分类

Java
我要回答