MST

星途 面试题库

面试题:Ruby自动化脚本中如何处理文件的批量重命名

假设当前目录下有一批文件,文件名格式为'old_name_数字.txt',现在需要将它们重命名为'new_name_原数字.txt',请用Ruby编写一个自动化脚本来实现这个功能。详细说明你会使用哪些Ruby的文件操作和字符串处理方法。
14.8万 热度难度
编程语言Ruby

知识考点

AI 面试

面试题答案

一键面试

以下是实现该功能的Ruby脚本:

Dir.glob('old_name_*.txt') do |file|
  # 使用split方法以'_'为分隔符拆分文件名
  parts = file.split('_')
  # 提取数字部分
  number = parts.last.gsub('.txt', '')
  new_name = "new_name_#{number}.txt"
  # 使用rename方法重命名文件
  File.rename(file, new_name)
end

使用到的Ruby方法说明:

  1. Dir.glob:用于匹配指定模式的文件路径,这里匹配所有以old_name_开头,.txt结尾的文件。
  2. split:字符串处理方法,将字符串按照指定的分隔符拆分成数组。
  3. last:数组方法,获取数组的最后一个元素。
  4. gsub:字符串处理方法,用于替换字符串中的指定内容,这里是去掉文件名中的.txt后缀。
  5. File.rename:文件操作方法,用于重命名文件。