【Ruby 】脚本和自动化语言 常用的内容

1️⃣常用内置模块

模块 用途
File 文件操作
FileUtils 文件和目录操作(复制、移动、删除、创建目录)
Dir 目录遍历和操作
YAML 解析和写入 YAML 文件
JSON 解析和写入 JSON 文件
Set 集合操作(去重、交集、并集)

2️⃣ Ruby 基础语法

内容 示例 说明
变量 name = "Ruby" 动态类型,无需声明类型
数组 arr = [1,2,3] 支持遍历、映射等操作
哈希 h = {a:1, b:2} 类似 Python dict
条件 if a > 1 ... elsif ... else ... end 多分支条件
循环 loop do ... end / while / for ... in ... end 无限循环 / 条件循环 / 遍历
方法 def add(a,b); a+b; end 使用 def 定义方法,end 结束
`1,2,3.each { x puts x}` 块(block)是 Ruby 的核心特性
字符串插值 "Hello #{name}" #{} 引入变量

3️⃣文件与目录操作

Ruby 自带 File 和 FileUtils 模块,常用操作:

操作 示例
读取文件 content = File.read('file.txt')
写入文件 `File.open('file.txt','w'){ f f.write("Hello")}`
判断文件存在 File.exist?('file.txt')
创建目录 Dir.mkdir('mydir')
遍历目录 Dir.glob('./**/*.rb')
移动/重命名 FileUtils.mv('old.rb','new.rb')
复制文件 FileUtils.cp('a.txt','b.txt')
删除文件/目录 FileUtils.rm('file.txt') / FileUtils.rm_rf('dir')

4️⃣ 文本处理与正则

替换字符串:

bash 复制代码
str = "old_name"
str.gsub!(/old_name/, "new_name") # 原地修改

匹配字符串:

bash 复制代码
if str.match?(/\A[a-z]+(_[a-z]+)*\z/)
  puts "蛇形命名"
end

扫描内容:

bash 复制代码
matches = str.scan(/pattern/)

5️⃣ YAML / JSON 操作

处理 Flutter 插件脚本常用 YAML:

bash 复制代码
require 'yaml'

data = YAML.load_file('pubspec.yaml')
data['name'] = 'new_plugin_name'
File.open('pubspec.yaml','w'){|f| f.write(data.to_yaml)}

处理 JSON:

bash 复制代码
require 'json'
json_data = JSON.parse(File.read('data.json'))

6️⃣💡 总结

Ruby 非常适合做 自动化脚本、文件批量处理、文本替换

Flutter 插件的 update_plugin_name.rb 就用到:

文件操作:File, FileUtils

YAML 解析:YAML

字符串/正则替换:gsub!, match?

循环遍历目录:Dir.glob

相关推荐
2603_965148113 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
九硕智慧建筑一体化厂家3 小时前
数字化管控落地,直流照明构筑安全照明体系
运维·人工智能·笔记·安全·智慧城市
刘某的Cloud4 小时前
ceph osd 导入导出 rbd volume 卷
linux·运维·ceph·volume
湘美书院--湘美谈教育6 小时前
湘美书院主理人谈AI文学:提示词与Skill的与时俱进
大数据·人工智能·安全·自动化·生活
神奇霸王龙6 小时前
Agent 准入门控屠夫:5 旗舰 4 维度评估
linux·运维·数据库·ai·ai作画·agent·ai编程
cfm_29147 小时前
基于Binlog实现不停机数据库平滑迁移技术
运维·数据库·架构
DeepVisionary7 小时前
从GPT-5.6 Sol的Ultrafast模式看推理速度竞赛:750 token/秒背后,Cerebras的晶圆级生意
python·自动化
迪康Defender7 小时前
AI 重构终端安全运营:智能分析中枢 AI Insight 模块架构与落地场景深度解析
运维·网络·人工智能·其他·安全·重构·架构
微硬创新8 小时前
老旧产线改造:耐达讯自动化16路4‑20mA转PROFINET的工程实践
人工智能·网络协议·自动化·信息与通信
HiDev_9 小时前
【非标自动化】2、认识元器件(固态继电器)
运维·自动化