为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

智慧大石 2019-03-22 19:15:21
背景: 有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也能做到。

查看完整回答
反对 回复 2019-04-24
?
侃侃尔雅

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


查看完整回答
反对 回复 2019-04-24
?
喵喔喔

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还是不太会用啊


查看完整回答
反对 回复 2019-04-24
  • 4 回答
  • 0 关注
  • 1351 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信