我在目录中有大量文件,每个文件的名称和长度都不同
种类的医生... 218级(1080p_30fps_H264-128kbit_AAC).mp4
另一种类型... Class 223(1080p_30fps_H264-128kbit_AAC).mp4
等等
我只想对“ Class 218”,“ Class 1”等进行排序,然后重命名这些文件 你们可以帮我使用sed吗?
答案 0 :(得分:0)
我将使用Perl rename
脚本。因此,在这种特定情况下,我将捕获“ Class” ,然后捕获一个或多个空格以及一个或多个数字作为捕获组,然后使用该重命名文件,同时保留相同的扩展名:
rename --dry-run 's/.*(Class\s+\d+).*/$1.mp4/' *mp4
示例输出
'Another type of ... Class 223 (1080p_30fps_H264-128kbit_AAC).mp4' would be renamed to 'Class 223.mp4'
'Kind of Physician something Class 218 (1080p_30fps_H264-128kbit_AAC).mp4' would be renamed to 'Class 218.mp4'
如果看起来不错,请移除--dry-run
,然后再次运行。
请注意,在正则表达式中:
.*
表示重复任意次的任何字符或数字,
/s+
表示至少发生一次甚至可能不止一次的任何类型的空间(制表符或空格),
/d+
表示至少出现一次且可能多次出现的任何数字(0-9),
(...)
意味着捕获括号内的所有内容,
$1
表示替换为先前在括号中捕获的第一件事。