V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
fl2al7k
V2EX  ›  Linux

求教 rename 批量删除文件名中的一些字符

  •  
  •   fl2al7k · 2015-08-12 15:02:28 +08:00 · 5637 次点击
    这是一个创建于 3376 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在有很多个文件,文件名结尾有些乱七八糟的字符,想删除掉。
    特举例俩个文件名,求教一条命令:
    文件一:
    v2ex_Test_V1.0.1_zhenshimaf.txt
    文件二:
    v2ex_Online_V1.0.1_toudale.txt

    想要把文件里面_zhenshimaf和_toudale这种无意义字符删除掉。

    我不懂正则表达式匹配我是这么写的:
    rename 's/V1.0.1*.txt/V1.0.1.txt/' *

    然后肯定是不对的。。求高手帮忙~
    12 条回复    2021-03-23 17:29:11 +08:00
    noe132
        1
    noe132  
       2015-08-12 15:29:21 +08:00
    分析一下

    一般格式如下

    (name)_(vertion)_(description).(suffix)

    一段一段写就可以了。

    (([a-zA-Z0-9]*)(_[a-zA-Z0-9]*){0,10})_[vV]?(\d*(\.\d*){0,10})_([a-zA-Z0-9]*)\.([a-zA-Z0-9]{1,10})

    写的貌似不太精简~
    lilydjwg
        2
    lilydjwg  
       2015-08-12 16:36:37 +08:00
    rename 's/_[^.]+\.txt/.txt/' *.txt
    aec4d
        3
    aec4d  
       2015-08-12 17:42:20 +08:00
    是我就写脚本了XD
    a = 'v2ex_Test_V1.0.1_zhenshimaf.txt'
    print(a.rsplit('_', 1)[0] + '.txt')
    shinestmt
        4
    shinestmt  
       2015-08-12 17:58:57 +08:00
    使用Excel, 找到最后一个下划线, 保留之前的内容, 在加上后缀.
    然后拼装命令 rename A1 B1
    ngn999
        5
    ngn999  
       2015-08-12 18:07:01 +08:00
    如果按perl的正则写:

    rename 's/_[^_]+\.txt/.txt/' *
    skydiver
        6
    skydiver  
       2015-08-12 18:37:31 +08:00   ❤️ 1
    真是麻烦,头大了
    stockss
        7
    stockss  
       2015-08-12 18:47:06 +08:00
    这么简单的问题,不用正则。
    Shazoo
        8
    Shazoo  
       2015-08-12 19:13:10 +08:00
    额,直觉是使用find来做……
    msg7086
        9
    msg7086  
       2015-08-12 21:22:25 +08:00
    直接正则即可啊, s/_[a-z]+\././ 楼主自己再根据情况改改呗,毕竟不知道你文件的规律。
    HMSQQbA
        10
    HMSQQbA  
       2015-08-13 00:15:58 +08:00 via Android
    我就直接用py脚本,迅速解决
    Catcheru
        11
    Catcheru  
       2019-06-21 00:49:10 +08:00
    rename 可以进入更深层次修改子文件的名字吗?
    BoyBoy
        12
    BoyBoy  
       2021-03-23 17:29:11 +08:00
    @Catcheru #11 不能的吧,看了很多帖子,只能修改当前目录下的文件
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2548 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 01:32 · PVG 09:32 · LAX 17:32 · JFK 20:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.