小白批量下载 100 个 mp3 文件之后重命名的挣扎过程 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
huntagain2008

小白批量下载 100 个 mp3 文件之后重命名的挣扎过程

  •  
  •   huntagain2008 2022 年 7 月 8 日 3495 次点击
    这是一个创建于 1386 天前的主题,其中的信息可能已经有所发展或是发生改变。
    下载得到
    凡人修仙传( 1401-1500 ) 1.mp3
    凡人修仙传( 1401-1500 ) 2.mp3
    ……
    凡人修仙传( 1401-1500 ) 100.mp3


    想得到
    0001.mp3
    0002.mp3
    ...
    0100.mp3

    $ rename -v 's/凡人修仙传( 1401-1500 )//' *.mp3
    1.mp3
    2.mp3
    ...
    100.mp3

    不会在前面补零,只好写 shell 脚本
    #!/bin/sh
    #
    #
    folder=download
    dir=`pwd`

    for file in $dir/$folder/*
    do
    mv $file `echo $file | awk -F/ '{printf("%04d.mp3\n", $NF)}'`
    done


    结束
    19 条回复    2023-09-10 13:02:48 +08:00
    imicksoft
        1
    imicksoft  
       2022 年 7 月 8 日
    Bulk Rename Utility
    xJogger
        2
    xJogger  
       2022 年 7 月 8 日
    Total Commander
    TrevorPhillips
        3
    TrevorPhillips  
       2022 年 7 月 8 日 via Android   1
    牛逼,直接给逼得写了 bat 脚本
    我都是用等死吧的工具 Renamer https://www.den4b.com/products/renamer
    (网址很好记,就是等死吧)
    TrevorPhillips
        4
    TrevorPhillips  
       2022 年 7 月 8 日 via Android
    @TrevorPhillips 眼花了 linux 啊,当我上面没说
    imKiva
        5
    imKiva  
       2022 年 7 月 9 日
    bash:
    find . -name "*.mp3" -exec bash -c 'mv "$0" "$(printf %04d $(tmp=${0##* } ; echo ${tmp%%.*})).mp3"' {} \;

    zsh 支持嵌套字符串操作,可以:
    find . -name "*.mp3" -exec zsh -c 'mv $0 $(printf %04d ${${0##* }%%.*}).mp3' {} \;
    milukun
        6
    milukun  
       2022 年 7 月 9 日
    用 mac 的话,直接全选右键重命名就可以。
    brsyrockss
        7
    brsyrockss  
       2022 年 7 月 10 日
    给你两个工具,会写正则就行,一个叫 rename ,另一个叫 advanced renamer ,第二个复杂一些,我用第二个做过和你一样的事情,注意先拿别得文件练练手,有些东西删了就好再整理了。
    另:建议文件不要纯 0001 0002 ,如果你有两个小说文件夹,都是同样命名方式,搜 0001 会出来 2 个结果,只能用路径来判断,可以编号后面跟个 -XXX 名字
    lovestudykid
        8
    lovestudykid  
       2022 年 7 月 10 日
    awk 都会用了,还什么小白啊...
    lovestudykid
        9
    lovestudykid  
       2022 年 7 月 10 日
    搜了下,rename 本身就可以 pad
    huntagain2008
        10
    huntagain2008  
    OP
       2022 年 7 月 11 日 via iPhone
    @lovestudykid 我只看了《 UNIX 编程环境 1983 版》前 6 章(花 5 块钱买了的书),只会很浅显的入门知识。
    huntagain2008
        11
    huntagain2008  
    OP
       2022 年 7 月 11 日
    小白用 python 版的批量重命名

    #!/usr/bin/env python3
    # 凡人修仙传( 1401-1500 ) 1.mp3 => 凡人修仙传 0001.mp3
    #
    import os
    import sys
    path = "/home/ht/下载 /"

    try:
    >>>>prefix = sys.argv[1]
    except IndexError:
    >>>>print("usage: python3 rename_pad.py argv1")
    >>>>sys.exit(1)

    for filename in os.listdir(path):
    >>>>num = filename[:-4].split()[-1]
    >>>>suffix = filename[-4:]
    >>>>num = num.zfill(4)
    >>>>new_filename = prefix + "_" + num + suffix
    >>>>os.rename(os.path.join(path, filename), os.path.join(path, new_filename))
    huntagain2008
        12
    huntagain2008  
    OP
       2022 年 7 月 11 日
    rename 版, stackoverflow 比较容易查到这类简单问题
    ht@ht-3470:~/下载$ rename 's/凡人修仙传( 1401-1500 ) //' *.mp3
    1.mp3; 2.mp3......;100.mp3

    ht@ht-3470:~/下载$ rename 's/\d+/sprintf("凡人修仙传_%04d",$&)/e' *.mp3
    凡人修仙传_0001.mp3; 凡人修仙传_0001.mp3......;凡人修仙传_0100.mp3
    qzhai
        13
    qzhai  
       2022 年 7 月 11 日
    说出来你可能不信,mac 访达 自带 持批量重命名。。。。
    huntagain2008
        14
    huntagain2008  
    OP
       2022 年 7 月 11 日
    @qzhai 说来不好意思,至今不会用 Mac 。 昨天是试了访达的重命名,感觉不太好用,也许是我不会用。
    我给旧笔记本装的 xubuntu ,发现它自带的批量重命名有替换、补齐、正则等,比我现在用的 kubuntu 的重命名强不少。

    当然 windows 上的重命名软件就更多了,最近用过的菲菲更名宝贝,还有 Microsoft PowerToys
    kemistep
        15
    kemistep  
       2022 年 7 月 11 日
    python 快捷多了;
    ```
    """
    文件名批量修改
    示例:尚硅谷 2021 版 React 技术全家桶全套完整版(零基础入门到精通-男神天禹老师亲授) (P1. 001_尚硅谷 react 教程_react 简介).mp4
    """
    import os, re, shutil
    dst_dir = r"G:\FFOutput\react_shangguigu" #replace \ with /
    os.chdir(dst_dir)
    file_list = os.listdir(dst_dir)
    for file in file_list:
    new_name = re.findall(r'P.*?\.mp4$',file) # \u4E00-\u9FA5
    if len(new_name)>=1:
    print(new_name)
    os.rename(file,new_name[0])
    ```
    [python 文件名批量修改 - ministep88 - 博客园]( https://www.cnblogs.com/ministep/p/15587015.html )
    runningowl
        16
    runningowl  
       2022 年 7 月 12 日
    windows 的 powertoys 有重命名
    35aZ4P8mT576683q
        17
    35aZ4P8mT576683q  
       2023 年 9 月 9 日
    我最近用 node 写了个脚本,解决了类似问题,特来考古

    https://gist.github.com/librz/61156e472cc83fcb94ab8c99f874bcae
    huntagain2008
        18
    huntagain2008  
    OP
       2023 年 9 月 10 日
    @liberty1900 现在看来,重命名多个文件已经不是问题。并不需要写什么脚本,还是用带图形界面的软件更好。系统自带的更好。即使真的要用脚本或命令行工具,也需具备 rename -n 这样的预览功能,再未改名之前先看个效果。毕竟是不可逆的操作。专业的重命名软件都提供 log 或备份。

    现在我都是用 Xubuntu 的 FileManager 自带的重命名。可重命名多个文件。

    选中多个文件,按 F2 就进入对话框。可用在文件名、后缀、名称和后缀。

    音频标签
    插入日期
    插入/改写
    移除字符
    搜索与替换
    编号
    大写/小写

    正式改名之前,都可在新名称这一列看到预览效果,确认无误,再点击重命名文件的按钮。

    rename 这个命令行工具也有 -n 选项可以不修改文件名,只预览新文件名的效果。
    35aZ4P8mT576683q
        19
    35aZ4P8mT576683q  
       2023 年 9 月 10 日
    @huntagain2008 我这脚步默认就是 Dry Run ,手动加 -r 选项才会真正 rename
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2830 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 53ms UTC 12:07 PVG 20:07 LAX 05:07 JFK 08:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86