背景: 有a, b两个文件夹, a, b下分别有50个文件夹, 每个文件夹都有个视频文件叫video.mp4问题: 如何循环修改这些文件名, 比如修改为: video1.mp4, video2.mp4......然后存到一个文件夹, 比如文件夹c里?虽然我用java写应该可以实现, 但是感觉太麻烦. 网上说貌似awk可以实现, 效率高, 不过重命名怎么做呢, 捣鼓半天也只能print出来, 或者有其他语言能高效完成的也行, 能有个实例就太感谢了~感谢python版本的回答, 不过用awk怎么做呢?
4 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
find -name 'video.mp4' | nl -w1 | sed 's/([0-9]+)t(./video.mp4)/2 c/video1.mp4/' | xargs -n 2 cp
sed那块拼字符串,用awk也能做到。
侃侃尔雅
TA贡献1801条经验 获得超16个赞
简单实现一个,假设a, b下只有一级子目录:
import glob
import shutil
index = 1
for dir in ['./a', './b']:
for f in glob.glob('%s/*/video.mp4' % dir):
shutil.copy(f, './c/video%d.mp4' % index)
index += 1
喵喔喔
TA贡献1735条经验 获得超5个赞
#!/bin/bash
regex="mp4"
i=1
path=~/Desktop/video
find "." -type f | grep $regex | while read line
do
newName=$i-$name;
cp $line $path/$newName;
i=`expr $i + 1`;
done
自问自答, 写了个shell的实现, 和python差不多, 然而awk还是不太会用啊
添加回答
举报
0/150
提交
取消