gpt4 book ai didi

linux - 使用重命名命令批量重命名文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:13:48 35 4
gpt4 key购买 nike

我试着只保留方括号中的数字和文件扩展名。所以下面的文件:

【004】ssd水电费.txt
【006】佛山市,地方cd2.txt
【022】风sf.pdf

我想成为:

004.txt
006.txt
022.pdf

或者就像

4.txt
6.txt
22.pdf

我知道 'rename 's/old-exp/new-exp' 命令和一点正则表达式,但是我找不到一种方法来匹配我所期望的正则表达式。

我试过 rename 's/[\u4e00-\u9eff]+//' * 来替换中文字符,但没有用。

最佳答案

您想使用如下内容:

rename 'tr/A-Za-z0-9.//cd; s/^(\d+).*(\.[a-z]+)$/$1$2/' *

(您需要先使用 -n 来测试它是否按照您的要求执行。)

这会删除文件名中除 A-Za-z0-9. 之外的所有字符,然后仅提取扩展名和开头的数字。

Unicode 匹配不起作用的原因是因为 rename 使用字节字符串,而不是 Unicode 字符串,因为并非所有 Unix 路径都保证是有效的 Unicode。因此,除非必须,否则简单地过滤掉不需要的字节值比将它们转换为 Unicode 更容易。

关于linux - 使用重命名命令批量重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56716000/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com