如何用Perl或Sed替换匹配后的单词,实现Doxygen转Swift注释?
跨Linux与macOS的Doxygen到Swift注释转换方案
- 要实现将
/// \param foo转为/// - Parameter foo:的需求,可借助Perl的正则捕获组完成一次性替换,Perl在两大系统下语法完全通用,无需区分环境:perl -i -pe 's/\\param (\w+)/- Parameter $1:/g' my_file - 命令解释:
\param (\w+):正则匹配\param及后续的参数名,(\w+)捕获参数名(支持字母、数字、下划线)- Parameter $1::替换为Swift标准注释格式,$1调用捕获到的参数名,自动添加末尾冒号
- 批量处理多个Swift文件:
若要批量修改目录下的所有.swift文件,可结合find命令:find . -type f -name "*.swift" -exec perl -i -pe 's/\\param (\w+)/- Parameter $1:/g' {} \; - 扩展说明:
- 若参数名包含连字符等特殊符号,可将正则中的
\w+替换为[\w-]+来适配 - 建议先备份目标文件再执行命令,避免意外修改
- 若参数名包含连字符等特殊符号,可将正则中的
内容的提问来源于stack exchange,提问作者roman Sztergbaum
相关产品推荐
相关产品推荐

