gpt4 book ai didi

ruby - 如何在 Ruby 中编写重命名模式?

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:19 25 4
gpt4 key购买 nike

我有几个这种类型的文件:

File-1 (vip)-eojUBB_8V_4.mp4
File-2 (vip)-Ek2iyeeL1Vc.mp4
File-3 (vip)-Gh8F6OJa0gU.mp4
File-4 (vip)-SvL_aZt3zyU.mp4

并想将文件重命名为:

File-1.mp4 
File-2.mp4

名称“File1”和“File2”只是一个例子。实际上文件有不同的名称,但文件名末尾带有“(vip)-smthing.mp4”。

我写了脚本:

#!/usr/bin/env ruby
require 'fileutils'
list = %x(ls -1 | grep .mp4).split(",")
list.each do |i|
File.rename(i, i.gsub(/(vip)*.mp4/, ".mp4"))
end

但无法理解,我需要在 gsub 中编写什么模式。

Bash 示例工作正常,但我需要在 Ruby 上编写它。

ls -1 | sed 's/-[^-]\+\././'

最佳答案

#!/usr/bin/env ruby
require 'fileutils'
list = Dir.glob('*.mp4')
list.each do |src|
if src =~ /^(File\d+)/
dst = "#{$1}.mp4"
puts "renaming '#{src}' to '#{dst}'"
File.rename(src, dst)
end
end

输出:

$ ls
File1 (vip)-dHsq8aF2P0U.mp4 File2 (vip)-asdfsad.mp4 foo.rb

$ ruby foo.rb
renaming 'File1 (vip)-dHsq8aF2P0U.mp4' to 'File1.mp4'
renaming 'File2 (vip)-asdfsad.mp4' to 'File2.mp4'

$ ls
File1.mp4 File2.mp4 foo.rb

关于ruby - 如何在 Ruby 中编写重命名模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31710098/

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