【问题标题】:Linux batch renameLinux 批量重命名
【发布时间】:2018-03-12 20:42:09
【问题描述】:

我正在尝试批量重命名多个文件,到目前为止,我已经非常接近我想要实现的目标。我有一些名为“website.txt”、“website1.txt”、“website2.txt”、“website3.txt”的文件,我试图只重命名与它们相关的数字的文件(因此不包括“website.txt”)。文本”)。我的第一次尝试如下(我使用 -n 进行测试):

rename -n 's/website/website_edit/' *txt

结果:

rename(website1.txt, website_edit1.txt)
rename(website2.txt, website_edit2.txt)
rename(website3.txt, website_edit3.txt)
rename(website.txt, website_edit.txt)

正如您所见,这几乎可以正常工作,但它也在重命名“website.txt”文件,这是我不想要的。因此,为了尝试删除它,我这样做了:

rename -n 's/website\w/website_edit/' *txt

结果:

rename(website1.txt, website_edit.txt)
rename(website2.txt, website_edit.txt)
rename(website3.txt, website_edit.txt)

这一次它确实从列表中删除了“website.txt”,但它也删除了新名称末尾的数字。我也尝试过使用一些正则表达式,但无济于事。

【问题讨论】:

    标签: batch-processing


    【解决方案1】:

    试试这个:

    rename -n 's/website(\d+)/website_edit$1/' *txt
                        ____              __
                         ^                ^
                         |                |
    capturing at least one digit      captured group
    

    【讨论】:

    • 这将把它重命名为website1_edit.txt。 OP想要,website_edit1.txt
    • 下次请提供样本输出;)
    猜你喜欢
    • 2015-12-13
    • 2016-04-09
    • 2013-12-16
    • 2021-06-17
    • 1970-01-01
    • 2011-04-17
    • 2014-09-10
    • 1970-01-01
    • 2012-11-15
    相关资源
    最近更新 更多