核心用法
file-converter 是一款基于 Bash + Python3 标准库的本地文件格式转换工具,通过 scripts/script.sh 接收命令和文件路径,所有处理结果输出至 stdout。
主要功能模块
| 类别 | 命令 | 说明 |
|------|------|------|
| **格式转换** | `csv2json`, `json2csv`, `tsv2csv`, `md2html` | 数据格式互转,Markdown 仅支持基础语法(h1-h3、粗体、斜体) |
| **SQL 生成** | `csv2sql <file> <table>` | 生成带列名转义的 INSERT 语句 |
| **JSON 处理** | `pretty-json`, `minify-json` | 美化或压缩 JSON,2 空格缩进 |
| **编码解码** | `base64-enc`, `url-encode/decode` | 注意:`base64-dec` 实现不完整(解码调用被注释) |
| **文件检测** | `detect`/`stats`, `hex` | 文件类型识别、大小/行数/字数统计、十六进制转储 |
显著优点
- 纯本地执行:无网络请求,无持久化存储,数据不离开本地环境
- 零依赖部署:仅依赖 Python3 标准库(csv/json/re/urllib.parse)和系统命令
- 管道友好:输出至 stdout,可灵活重定向或串联 Unix 管道
- 透明可审计:开源脚本,转换逻辑清晰可见
潜在局限与风险
| 问题 | 影响 | 建议 |
|------|------|------|
| **YAML/XML 未实现** | 描述中提及但实际不可用 | 需手动安装 PyYAML/lxml 替代 |
| **Markdown 支持简陋** | 表格、列表、代码块、链接均不支持 | 复杂文档请使用 Pandoc |
| **base64-dec 功能残缺** | 解码命令无效 | 使用系统 `base64 -d` 替代 |
| **tsv2csv 无引号处理** | 含制表符的字段可能破坏 CSV 结构 | 预处理转义或使用专业工具 |
| **无输入验证** | 恶意构造的文件可能引发异常 | 不信任来源文件先隔离检测 |
适合人群
- 需要快速轻量格式转换的开发人员与数据工程师
- 对数据隐私敏感、禁止外发处理的场景
- CI/CD 流水线中的自动化格式规范化任务
- 教育/学习目的,理解基础文本格式转换原理
常规风险提示
- 处理大型文件时注意内存占用(Python 一次性加载)
csv2sql生成的语句请 review 后再执行,避免 SQL 注入风险(虽单引号已转义)- 输出重定向前建议先用
detect确认文件类型,避免覆盖错误